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):
With straignt segments any precision is possible. The only pro is:
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…
Hello Vovanium,
thank You for objectively answer.
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.
Ну так зачем же компромиссы? Есть кривые, которые гораздо точнее аппроксимируют дуги и проще в обсчёте: это дуги.
Для того, чтобы из прямого отрезка (хорошо, геодезической прямой) сделать дугу, надо ему добавить только один параметр… ну например, угол загиба (который автоматически равен нулю для прямой). Таким образом, если не задавать сильно большие углы, вполне можно будет работать со старым софтом, который легко научить сначала просто игнорировать дополнительный параметр, «аппроксимируя» дугу отрезком.
Или определять оную дополнительным узлом между концами, помеченым спец. флажком, и тогда старый софт, который не знает о флажке будет рисовать на её месте два последовательных отрезка.