curves (splines) for drawing in OSM

Знаете, я видел целую довольно толстую книжку на тему приближения ломаных сплайнами. Адски трудная и непонятная задача на самом деле :slight_smile:

Не может :slight_smile:

Вся 3D-графика строится на сглаживании, достаточно перенести этот опыт в 2D.

Еще раз повторю - сплайн в природе нельзя измерить, это аппарат для CorelDraw и рисовальных программ, а не CAD/GIS. Линейкой (касательные) углы не измеришь. А для интерполяции по точкам сплайн может построить и рендер.
Например рисуем way из трех нодов и ставим атрибут geometry=arc. Стандартный рендер нарисует ломаную, а другой, специально написанный - дугу.

Для чего измерять сплайн в природе?

Для того что ОСМ в первую очередь работает с координатами и даже позиционируется как свободная карта мира. Дороги и здания не строят по сплайнам. Если же обрисовывать природные объекты, то сгладить углы может рендер.

Возьмём, к примеру, Колизей:

Или Дворец игровых видов спорта в Екатеринбурге: http://goo.gl/maps/YTI5 (и здание рядом с ним)

Покажите мне строительный чертеж этого сооружения в виде сплайнов, или попробуйте на бумаге нарисовать произвольный сплайн при помощи линейки и циркуля. Причем с указанием параметров, чтобы другой картограф смог воспроизвести точно такую же линию :slight_smile:
PS: за два года начерталки не припомню чтобы мы хоть раз чертили сплайны.

(added)
Ilis, всё что вы приводите в пример строится по дугам.

Оба этих сооружения выполнены в форме эллипсов.

А кроме циркуля и линейки почему ничего нельзя?

Эллипс замечательно рисуется с помощью верёвочки и пары колышков:

Кстати, на уроках черчения эллипс замечательно чертят циркулем и линейкой :slight_smile:

Ну если эллипс и окружность для вас являются сплайном…

Это не эллипс, это дуги окружности.

Я знаю.

… то что?

То спор потерял смысл, мы говорим на разных языках.

Напишите sql запрос для postgis который бы ответил мне пересекается ли сплайновый коллизей со сплайновой дорожкой вокруг. Или пересекается ли квадратный домик со сплайновой дорожкой вокруг.

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

Я не против, например расставить подсказки для рендера на точках: smooth, corner и на прямой (сглаживать/не сглаживать).Но при этом обклацывая снимок, хотелось бы быть уверненным что вне зависимости от возможностей софта и точности аппроксимации сплайна, я не получу грубых ошибок в геометрии (самопересечений для поликов или пересечений русел рек иберегов и т.п.)

+1
Просто, эффективно, реализуется уже имеющимися средствами, не требует введения нового типа геометрии. Если я правильно понимаю, первопричиной беседы про сплайны послужили угловатые дороги, русла рек, водоемов и пр. Дело за рендерами.

Рендерер не может правильно сгладить полилинию без подсказок.

Ilis
Поставить подсказки, как предложил dkiselev, проще, чем вводить новый тип геометрии. Этот метод используется во всех 3D-рендерах без исключения, т.е. на vertex ставятся флажки сглаживать-не сглаживать. Я не знаток Java-программирования, но думаю ввести поддержку таких тегов в JOSM большого труда не составит (т.е. чтобы JOSM правильно отображал сглаженные линии).

Есть многое на свете…
Сплайн живьем и чертежи, его использующие:
http://pages.cs.wisc.edu/~deboor/draftspline.html

В то время как вы два года чертили на начерталке непоймичто, корпорация Boeing сплайнами чертила самолеты :slight_smile:

Кроме того, я видел советских еще времен чертежи турбинных лопаток - там 3D профиль (примерно догадываетесь о его сложности?) был задан как длинная такая таблица чисел.

Как однозначно воспроизвести сплайн любым картографом? Ну вот, например:
http://en.wikipedia.org/wiki/File:Bezier_3_big.gif

А как вы будете определять пересечение при наличии таких подсказок? И то, и другое невозможно без серьезного допиливания внутренностей самого postgis. Но речь изначально шла про OSM?