# curves (splines) for drawing in OSM

I started discussion about using of splines in OSM maps.
First result (unfortunately description is mostly in german, but maybe vvoovv can find time to translate a few words in russian):

http://forum.openstreetmap.org/viewtopic.php?pid=244255#p244255

О нет, сплайны…

NO WAI.

Vovanium, substantive arguments against this solution?
We should discuss about pros and cons. I think we don´t close our eyes for new solutions?
Pro:

1. more exactly micromaping possible: rendering of tiles in very high zoom level without “cheap” low poly look of the map.
Con:
2. more effort for programming.
3. No software support
4. higher entry barrier for beginners.

What else?

Это не про это - http://forum.openstreetmap.org/viewtopic.php?id=11556 ?

Thanks Sergey, I dont´t know Russian Froum well.
There is no new posts. Also the wiki page: http://wiki.openstreetmap.org/wiki/Relations/Proposed/Geometry is deleted.
Anyway. What is Your result from this discussion?

With straignt segments any precision is possible. The only pro is:

1. same precision with less nodes.

Much more. Cubic curve geometry on a geoid is not simple. Note, it is not only rendering, but also angle, length, area computation, hit tests, intersections…

1. Compatibility loss.

Hello Vovanium,
One point pro more:
1a. In 3D representation are such surfece definition helpful. Depend on the distance from observer is the rendering with different level of details possible.

Con. 1. I know, my wife did it succesful years ago (no joke). There is of course a lot to do but it is resonable. Good reason to fullfill “Geometry” wiki page with content again.

Con 4. - that´s true. But that happens often with new standards.

А я бы рисовал сплайнами.

Сначала научите софт их понимать. Я не хочу видеть пустое место вместо дорог в навигаторе.

Сначала курица или яйцо?

Рисование сплайнами при отсутствии софта, способного их понимать уместно только в одном случае: при дублировании сплайнов полилиниями, которые в последующем будут удалены (когда софт научится понимать сплайны). Но это не правильно и все это понимают.

Сплайны легко приближаются полилинией, и особых проблем это вызывать не должно.

И какую же реализацию сплайнов вы хотите учинить в осме? С кривыми Безье новички всё так переломают, что потом не распутаешь, проще будет убивать всё и заново рисовать.

Не говоря уже о том, что математически идеальная кривая неуместна при отражении реальности (я говорю это, несмотря на то, что 3D-моделер со стажем). Многоугольник, накликанный по контурам, всего лишь страдает неполнотой, в то время как сплайн даёт ложную форму там, где на самом деле о ней ничего не известно. В графике это удобно, но в картографировании недопустимо.

Дороги состоят из прямых и дуг окружности, что легко можно задать кривыми Безье. Дома примерно так же строят.

Вы сначала пространственные функции для работы с этими кривыми предоставьте. Со всякими конвертациями проекций. И чтоб не тормозило.

I believe in the abilities of mathematicians from Russia. Take this part of the development in your hands. It would be an enrichment for OSM. Worldwide.
It would be great to be leading in the map develepment.

Marek, why not use a tool in josm (comand line) for creating curves (besier) with automatic approximation with simple polyline?

I think, use curves without backward compatibility is awful. It will kill mobile applications. With backward compatibility you can use line approximation for computations. But there is another problem:
For example:
You draw a river, with a straight riverbanks. Neva or something like this, they have straight concrete or granite embankment. And you draw a line for a clearway. It’s smooth in real world, and you use curve. So you must check, that curve didn’t intersects with embankment, and simple polyline didn’t cross it too. I think many peoples will forget do this checks. If you use tool that draw polyline by bezier base points with a given precision you insuared that you didn’t make a mistake.

I wonder if any 3D software renders splines. Different level of details is possible just now, using polygon simplification algorithm.

Spline on a geoid (or at least ellipsoid)? I wonder if it possible, to fit one to another.

It will make useless most of already written software. Nobody will say ok to you for this.

UPD: Marek, is i wrote below, if you really want curves, you would better adopt circular arcs, which are much more useful. Introduce additional attribute to way node/segment, so old software could just ignore it and treat it as straight line.

Ну так зачем же компромиссы? Есть кривые, которые гораздо точнее аппроксимируют дуги и проще в обсчёте: это дуги.

Для того, чтобы из прямого отрезка (хорошо, геодезической прямой) сделать дугу, надо ему добавить только один параметр… ну например, угол загиба (который автоматически равен нулю для прямой). Таким образом, если не задавать сильно большие углы, вполне можно будет работать со старым софтом, который легко научить сначала просто игнорировать дополнительный параметр, «аппроксимируя» дугу отрезком.

Или определять оную дополнительным узлом между концами, помеченым спец. флажком, и тогда старый софт, который не знает о флажке будет рисовать на её месте два последовательных отрезка.