Почему в OSM нет окружностей и кривых хотя бы второго порядка?

Удобно было бы чертить некоторые вещи.

(Если нужно для кривых второго порядка могу передать в public domain алгоритмы поиска пересечений на C++, хотя там ничего сложного, в общем то.)

denizzz, где конкретно “в OSM” их не хватает?

Рисование кругового движения, беговых дорожек (на стадионах которые), круглых зданий (труб на ТЭЦ), рисование некоторых развязок, скажем.

Ну вот нефтебазу рисовал только что: http://www.openstreetmap.org/?lat=56.098647&lon=94.566885&zoom=18&layers=M

Там на территории есть ёмкости круглые. Тратить 30 точек чтобы они действительно выглядели круглыми жалко. Да и придётся забыть о 3D-рендере типа как у знаменитых карт Шанхая. А вот координаты + радиус было бы замечательно.

Кривыми можно было бы изображать кривые дороги - алгоритмы приведения ломанной в кривую имеются. Точки будут экономиться при этом а качество изображения наоборот возрастёт.

при этом на порядок вырастет нагрузка на сервер и сложность системы в целом.
принудительным округлением дорог занимается слой osmarender — по твоей же ссылке можно переключиться и посмотреть

Он по трём точкам не в состоянии сделать окружность.

Не пофиг ли? Серверы в наше время дешевле картофеля :slight_smile:

Если использовать кривые 2 порядка то не особо - они не могут пересекать сами себя и места их пересечений легко находятся по простой формуле.

Про 3 порядок не знаю, но судя по тому что во всех программах векторной графики элемент “кривая” давно стал стандартом проблем с ними нет.

(я не настоящий сварщик, просто знания остались со времён когда делал 2D физический движок на кривых 2 порядка. Это чтобы фигуры были плавные а не ломанные как обычно)

Не путай сервер, который рисует 5-10 круглых труб, с сервером, который должен обслуживать миллиарды объектов для сотен тысяч пользователей.

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

А OSM уже непрост для “простого пользователя”. Просто вы тут давно и не заметили этого. :slight_smile: Куча правил, тэгов, мультиполигоны разные там…

Хотя бы окружности бы…

У конкурирующих проектов нет окружностей. Наверное, это неслучайно…

Лучше поставьте к JOSM плагин СommandLine, там вам и окружности, и кривые Безье, и всё, что еще напишите.
Аппроксимированные до ломаных, конечно :3

(JOSM у меня в дебиане не заработал. Ни какая версия.)

Да точек же много потратится и навигатор будет тормозить. Так то эти бочки никому не нужны, просто для ориентира и на будущее для 3д карты :slight_smile: И хотелось бы чтобы было понятно что это бочки и они круглые.

Ответ на исходный вопрос понятен.

поставь сановскую джаву (и снеси openjdk, одни проблемы от неё).
правда, не знаю, в каком она репозитории.

Она на сайте оракла - там бинарники установщика емнимп.

Лично я за Безье на неопределённое (но не слишком далёкое) будущее. Там поди и процы в навигаторах подтянутся, смогут их живьём рисовать.

Если он от этого тормозит - то от введения кривых он станет тормозить тем более. :slight_smile:

Не факт.

Ну и навигаторы сейчас не умеют кривые так что при выгрузке все кривые будут конвертироваться в ломанные с желаемой или адаптивной точностью.

Факт.
Вы знаете хоть один алгоритм быстрого рисования Безье?

Не, ну это несерьезно. Для навигаторов всё равно придется аппроксимировать до ломаных, а это делается в ходе конвертации. Да и времени занимает миллисекунды.

Что касается отрисовки во всевозможных движках, то вы, кажется, забыли, что, к примеру, любая надпись - это сотни и тысячи кривых Безье в шрифтах.