You are not logged in.

#26 2012-05-25 13:16:12

s777n
Member
Registered: 2012-03-04
Posts: 315

Re: curves (splines) for drawing in OSM

Ilis wrote:

Осмарендер скруглял углы. Делал он это, мягко говоря, хреново.

А остальные не скругляют разве? Просто не разу не видил что-бы где то с этим проблемы были. ТО что должно быть круглым - на карте круглое что квадтратным - то квадратное))

Offline

#27 2012-05-25 17:41:35

Vovanium
Member
Registered: 2009-07-23
Posts: 1,094

Re: curves (splines) for drawing in OSM

Ilis wrote:
Vovanium wrote:

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

Как раз дуги — это компромисс, а сплайны — универсальный инструмент.

Это чем же сплайны универсальнее дуг?


Мне KekcuHa обещал подарить навигатор. Как жаль, у меня уже есть.

Offline

#28 2012-05-27 06:40:01

denizzz
Member
Registered: 2011-03-09
Posts: 134

Re: curves (splines) for drawing in OSM

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

Offline

#29 2012-05-28 21:52:09

Mir76
Member
From: Екатеринбург
Registered: 2009-12-18
Posts: 1,455

Re: curves (splines) for drawing in OSM

А почему требуется чтобы кривая шла по трехмерному геоиду? Мапить вы ее все равно будете на двумерном экране -> вся двумерная  геометрия работает.

Offline

#30 2012-05-28 22:24:01

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,779

Re: curves (splines) for drawing in OSM

Mir76 wrote:

А почему требуется чтобы кривая шла по трехмерному геоиду? Мапить вы ее все равно будете на двумерном экране -> вся двумерная  геометрия работает.

В каком конкретно месте она работает? В epsg:4326 (как хранится в БД), или в epsg:3857 (меркатор на шаре, как отображается в josm и в мапнике)?
А если я захочу отобразить в epsg:3395 (как на яндекс-картах), где уже не шарик, а эллипсоид?

Last edited by Sergey Astakhov (2012-05-28 22:24:36)

Offline

#31 2012-05-29 06:48:53

PShA
Member
Registered: 2011-07-26
Posts: 170

Re: curves (splines) for drawing in OSM

Заставить валидатор ругаться, если длина дуги > 100 метров.
Тогда во всех проекциях оно будет практически одинаковое smile

Offline

#32 2012-05-29 13:15:16

Mir76
Member
From: Екатеринбург
Registered: 2009-12-18
Posts: 1,455

Re: curves (splines) for drawing in OSM

Если сплайн это кривая в координатах "долгота-широта", то она отобразится в любой проекции. Я так думаю.

Offline

#33 2012-05-29 14:03:21

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

Re: curves (splines) for drawing in OSM

Отобразится то отобразится только сильно по разному может отобразиться, ну и как следствие в разных координатах будет/не будет к примеру пересекаться с чем-нибудь.


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#34 2012-05-29 14:17:56

Mir76
Member
From: Екатеринбург
Registered: 2009-12-18
Posts: 1,455

Re: curves (splines) for drawing in OSM

Если у двух кривых есть точка пересечения (с конкретной широтой и долготой), то они должны  пересечься в этой точке в любой проекции.  Разве не так? Углы и прямизна/кривизна изменятся, это да, так это проблема всех проекций сферы на плоскость.

Offline

#35 2012-05-29 14:55:07

PShA
Member
Registered: 2011-07-26
Posts: 170

Re: curves (splines) for drawing in OSM

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

Offline

#36 2012-05-29 14:59:32

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,110

Re: curves (splines) for drawing in OSM

Ilis wrote:

Про то, что новички что-то там наломают, вообще не аргумент. Давайте релейшены сначала запретим чтобы не ломали.

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


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#37 2012-05-29 17:25:53

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

Re: curves (splines) for drawing in OSM

Zkir wrote:
Ilis wrote:

Про то, что новички что-то там наломают, вообще не аргумент. Давайте релейшены сначала запретим чтобы не ломали.

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

Релейшен сломать гораздо проще, чем линию, которую наглядно видно.

Offline

#38 2012-05-30 08:09:37

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,950

Re: curves (splines) for drawing in OSM

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

Offline

#39 2012-05-30 08:28:12

Ilis
Member
From: Екатеринбург
Registered: 2009-05-24
Posts: 5,970

Re: curves (splines) for drawing in OSM

Hind wrote:

зачем всё это нужно при массе более актуальных задач.

В смысле что ещё пол-России не нарисовано?

Offline

#40 2012-05-30 08:57:58

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,110

Re: curves (splines) for drawing in OSM

Ilis wrote:

Релейшен сломать гораздо проще, чем линию, которую наглядно видно.

Дык релейшены и ломаются довольно часто. Разве это хорошо?


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#41 2012-05-30 12:25:04

Felis Pimeja
Member
Registered: 2010-10-27
Posts: 1,035

Re: curves (splines) for drawing in OSM

Ilis wrote:

Релейшен сломать гораздо проще, чем линию, которую наглядно видно.

Пример релейшенов как раз и показывает, что лучше 10 раз подумать прежде чем революционно расширять возможности. "Немного затянувшееся" перелицензирование ещё один грустный пример.

Offline

#42 2012-05-30 13:47:06

Mir76
Member
From: Екатеринбург
Registered: 2009-12-18
Posts: 1,455

Re: curves (splines) for drawing in OSM

PShA wrote:

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

Еще раз, если в двумерном пространстве "долгота-широта" две кривых пересекаются, то у них есть точка пересечения с своей долготой-широтой (это просто по определению). Любая разумная проекция Долготы-широты в трехмерное пространство (читай натягивание на геоид) переведет кривую в кривую, а общую точку - в общую точку.  Или не так? Если не так, то с вас контрпример.

Offline

#43 2012-05-30 14:14:17

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

Re: curves (splines) for drawing in OSM

Ну хорошо рассмотрим пример, сплайн около экватора, экватор - прямая. Я в математике не силен, не помню как называются такие кривые, которые проходят через все заданные точки плавненько изгибаясь от одной к другой. (У кривых Безье 2 точки вспомогательные и через них прямая не обязанна проходить - это все из воспоминаний по 3d максу там есть 2 вида сплайнов Безье и т о которых я сейчас говорю).

Допустим у нас кривая проходит через 4 точки. Обозначил их звездочками.

*                    *
    \             /
       *      *
           +
-----------------------

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

Теперь вы перепроецировали кривую. Допустим что при перепроецировании у вас точки по вертикали сдвигаются тем сильнее чем дальше они от экватора. Это вполне реальная ситуация только не заканчивая профильный вуз по именам я вам эти проекции не назову. sim думаю сможет smile

Идем дальше: у вас концевые точки сдвинулись от экватора дальше чем точки в серединке, соответсвенно аппроксимируя их тем же путем что и в исходной проекции у вас носик кривой (обозначен плюсиком) вытянется сильнее и пересечет экватор.

Как-то так. smile


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#44 2012-05-30 14:19:26

dkiselev
Member
Registered: 2010-02-09
Posts: 3,364

Re: curves (splines) for drawing in OSM

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

Эти рассуждения можно проводить не обязательно с линией экватора, все будет так же. Просто с экватором проще и нагляднее.


mail: dkiselev@osm.me      skype: dmitry.v.kiselev
Open Street Maps are supreme! Exterminate all map forms! Exterminate! Exterminate!

Offline

#45 2012-05-30 14:36:04

chnav
Member
From: Russia, mapping Kazakhstan
Registered: 2010-03-18
Posts: 3,264

Re: curves (splines) for drawing in OSM

Между двумя точками в географических координатах можно провести разные линии - дугу большого круга (Great Circle), просто прямую при небольших расстояниях, локсодрому (Rhumb Line), прямую в прямоугольных проекциях (Grid Azimuth). В зависимости от крутизны редактора/рендера может импользоваться разная математика, и если в одном редакторе две прямые не пересекаются, в другом редакторе/проекции они запросто пересекутся. Про сплайны даже думать страшно, как собираются считать их на эллипсоиде smile

Last edited by chnav (2012-05-30 14:38:38)

Offline

#46 2012-05-30 17:23:47

Vovanium
Member
Registered: 2009-07-23
Posts: 1,094

Re: curves (splines) for drawing in OSM

chnav wrote:

Между двумя точками в географических координатах можно провести разные линии - дугу большого круга (Great Circle), просто прямую при небольших расстояниях, локсодрому (Rhumb Line), прямую в прямоугольных проекциях (Grid Azimuth).

А выбрали ли «каноническую» кривую? Мне всё время чудится, что это дуга большого круга...


Мне KekcuHa обещал подарить навигатор. Как жаль, у меня уже есть.

Offline

#47 2012-05-30 17:33:17

Ivan Komarov
Member
Registered: 2008-10-02
Posts: 1,050

Re: curves (splines) for drawing in OSM

А мне подумалось про чуть более сложные алгоритмы, типа Point Location на Trapezoidal Map. Кажется, что со сплайнами будет полный мрак.

Offline

#48 2012-05-30 17:34:49

chnav
Member
From: Russia, mapping Kazakhstan
Registered: 2010-03-18
Posts: 3,264

Re: curves (splines) for drawing in OSM

Vovanium wrote:

Мне всё время чудится, что это дуга большого круга...

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

Кстати, очень простой пример.
Рисуем две геодезические линии (по дуге большого круга на сфере или эллипсоиде, т.е. кратчайшей прямой) с азимутом отличным от 0°, параллельные, отстоящие на десяток метров. Естественно они не пересекаются.
Одну из линий делим на отрезки (также по кратчайшей прямой, т.е. дуге большого круга) через 1-10 км и ставим на ней промежуточные точки. Линии по-прежнему не пересекаются (на эллипсоиде).
Переводим массивы координат в меркатор и любуемся результатом. А ведь это типичный результат, например, для протяженных административных границ.

PS: границы с тегом source=www.eastgeology.com имеют много промежуточных точек на "прямых" участках. Неспроста wink

Last edited by chnav (2012-05-30 17:49:29)

Offline

#49 2012-05-30 18:31:28

Hind
Member
From: Moscow
Registered: 2009-05-25
Posts: 3,950

Re: curves (splines) for drawing in OSM

Вы собираетесь проецировать кривые третьего порядка на геоид. Может, не надо? Одумайтесь! :3

1336559513281.jpg

Offline

#50 2012-05-30 18:56:56

Ivan Komarov
Member
Registered: 2008-10-02
Posts: 1,050

Re: curves (splines) for drawing in OSM

как альтернативный вариант - может делать тегами подсказки для рендера? типа geo=smoothed или geo=arc на отрезках way'ев?

Offline

Board footer

Powered by FluxBB