You are not logged in.

#301 2013-03-01 21:27:07

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

Re: Актуальные задачи, требующие искусства программирования

А хорошо ли это? Есть места где реально только мост и всё, съехать с одной дороги на другую низзя.

Это я выбрал европейские маршруты. Часть развязок естественно отвалилась.  но если есть пересечение, 999:1 что есть развязка.
.

Last edited by Zkir (2013-03-01 21:27:51)


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

Offline

#302 2013-03-01 21:35:24

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

Это я выбрал европейские маршруты. Часть развязок естественно отвалилась.  но если есть пересечение, 999:1 что есть развязка.

А, паневропейская обзорка дорог smile Тогда да, с масштабе 2-5 км палюбасу будет переезд с одной дороги на другую.
Только там опять поди отрезков и точек тьма, опять памяти не хватит.

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


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#303 2013-03-01 21:48:23

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

Re: Актуальные задачи, требующие искусства программирования

Она самая)

если получится собрать нечто дающее приемлемый результат без учёта пересечений - тогда подумаем над пересечениями.

Попробую завтра


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

Offline

#304 2013-03-02 14:30:27

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

Re: Актуальные задачи, требующие искусства программирования

Так, докладываю о результатах.

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

1.  Кое-где выпали дороги - похоже на багу алгоритма.

mp_simp_1_missing_roads.png

До упрощения дорога есть smile
mp_simp_1_missing_roads_src.png

2. Зачем то паромы (0x1b) превратились в дороги.

mp_simp_2_ferry.png

И конечно отчаянно нужны пересечения.

Сама карта, для тестов, здесь:
http://Peirce.gis-lab.ru/misc/EU-OVRV.zip

Last edited by Zkir (2013-03-02 14:47:13)


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

Offline

#305 2013-03-02 17:53:53

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

1.  Кое-где выпали дороги - похоже на багу алгоритма.
http://Peirce.gis-lab.ru/misc/mp_simp/m … _roads.png

Вырезало 0 меридиан, +- ~6 минут (т.е от -0.1 до +0.1 градуса). О_о
Уполз разбираться. Чую, хитрая засада в ClustersIndex...

Zkir wrote:

2. Зачем то паромы (0x1b) превратились в дороги.

Это уже вопрос к конвертерации.
Вей - паромный http://www.openstreetmap.org/browse/way/121724962
А в EU-OVRV.mp так:
; WayID = 121724962:0
; highway = trunk


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#306 2013-03-02 18:18:09

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

Re: Актуальные задачи, требующие искусства программирования

По идее, смотреть на эти комменты вовсе не надо, а смотреть на тип (Type=). За развязки брать 0x08, 0x09, 0x0b. Конвертация-то уже состоялась.

Уполз разбираться. Чую, хитрая засада в ClustersIndex..

.
очень ждем)


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

Offline

#307 2013-03-02 19:07:55

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

По идее, смотреть на эти комменты вовсе не надо, а смотреть на тип (Type=). За развязки брать 0x08, 0x09, 0x0b. Конвертация-то уже состоялась.

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

Zkir wrote:

1) Есть ли возможность по RouteParam или иначе сориентироваться, какой тип highway был в исходном osm, включая _link/ не _link?

Да, можно. Перед секцией в мп есть комментарий, в котором сидит исходный тег. (это стандартная выдача osm2mp.pl)

; WayID = 145406054:0
; highway = tertiary
[POLYLINE]
Type=0x05
...

Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#308 2013-03-02 19:42:29

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

Re: Актуальные задачи, требующие искусства программирования

Это был ответ на вопрос можно ли smile
Почитал код, насколько понял, осм уровень используется в сущности только для сравнения 'важности' дорог, что с чем соединять. Правильно?


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

Offline

#309 2013-03-02 20:21:39

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

Re: Актуальные задачи, требующие искусства программирования

Если бы там было

; WayID = 145406054:0
; route=ferry

Много лучше от этого не стало. Но заменить чем-то 'важность' из highway=* в самом деле не так просто.

Last edited by Zkir (2013-03-02 20:22:24)


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

Offline

#310 2013-03-02 20:45:11

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

Если бы там было

; WayID = 145406054:0
; route=ferry

Много лучше от этого не стало. Но заменить чем-то 'важность' из highway=* в самом деле не так просто.

Ну в общем, всё что загружается из полилиний .mp - попадает в обработчик. Либо это должны быть дороги, либо их не должно быть во входном файле. Фильтрация "не дорог" исходной задачей не предусмотрена.

Zkir wrote:

1.  Кое-где выпали дороги - похоже на багу алгоритма.
http://Peirce.gis-lab.ru/misc/mp_simp/m … _roads.png

Ржака.
Data0=(48.0127110415158,-0.094733338658369),(48.0128229903524,-9.46952344360793E-02)
GPSMapEdit такого просто не понимает. Исправил
Пропатчил основную версию на гитхабе.

Last edited by OverQuantum (2013-03-02 21:18:33)


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#311 2013-03-02 21:16:58

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

Re: Актуальные задачи, требующие искусства программирования

Data0=(48.0127110415158,-0.094733338658369),(48.0128229903524,-9.46952344360793E-02)
GPSMapEdit такого просто не понимает. Исправил

Смешно. big_smile. Сейчас потестируем.

Либо это должны быть дороги, либо их не должно быть во входном файле. Фильтрация "не дорог" исходной задачей не предусмотрена.

Паром - такой же элемент карты, как и дорога. Более того, все полилинии, у которых есть routeparam(s) - дороги. 

Но это это я и сам могу пропатчить (когда придумаю что сравнивать в CompareRoadtype()). А вот пересечения бы wink


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

Offline

#312 2013-03-02 21:25:27

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

Паром - такой же элемент карты, как и дорога. Более того, все полилинии, у которых есть routeparam(s) - дороги. 
Но это это я и сам могу пропатчить (когда придумаю что сравнивать в CompareRoadtype()). А вот пересечения бы wink

CompareRoadtype - оно про поглощение. Надо добавлять константу в группу HIGHWAY_*,  детектировать её по 0x1b и добавлять её в функции GetHighwayType, GetType_by_Highway, GetClass_by_Highway и GetTopLevel_by_Highway


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#313 2013-03-02 23:34:32

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

Re: Актуальные задачи, требующие искусства программирования

Нельзя ли посмотреть почему такой выброс?
mp_simp_2_zz.png


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

Offline

#314 2013-03-03 12:27:54

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

Нельзя ли посмотреть почему такой выброс?

Ога, был баг в обработке превышения длины _link-а, исправил, на гитхабе тоже.
Однако даже с этим багом такого выброса у меня не наблюдалось. Какие параметры использовались?
У меня при EU-OVRV.mp от 2013.03.02 16:49:26 и выложенной мною версии mp_extsimp.bas в 130302.zip было всё нормально.

Обычно такой выброс происходит при глюке функции FindAiming, вычисляющей центроид развязки, когда она прицеливается по осевым линиям дорог при прямой дороге или слабом повороте и итеративный подбор уносит точку вбок.
Регулируется через параметр AngleLimit, передаваемый через CollapseJunctions2. AngleLimit - синус предельного угла, если все дороги сходятся под меньшим углом, то вместо итеративного прицеливания по осевым используется тупое среднее арифметическое, которое всегда внутри развязки, но мажет мимо осевых. AngleLimit=0.13 -> 7.47 градуса.  Если хотите задать 15 градусов, ставьте AngleLimit=0.26. При AngleLimit=1 всегда будет среднее арифметическое.

Last edited by OverQuantum (2013-03-03 12:46:25)


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#315 2013-03-14 21:47:58

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

Re: Актуальные задачи, требующие искусства программирования

Параметры самые стандартные, я в параметрах ничего не меняю. В последней версией с выбросом все стало нормально,

но обнаружились вот такие артефакты:

mp_simp_art.png
http://www.openstreetmap.org/?box=yes&b … 2C49.50492

Нельзя ли посмотреть, почему они возникают?
Они плохи тем, что мешают искать настоящие тупики.

Last edited by Zkir (2013-03-14 21:49:54)


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

Offline

#316 2013-03-14 22:09:47

Zverik
Moderator
From: Москва
Registered: 2010-10-14
Posts: 5,663
Website

Re: Актуальные задачи, требующие искусства программирования

Слушайте, а почему тема про сбор задач превратилась в общение Zkir и OverQuantum про какую-то упрощалку дорог? Может, разбить?


ШТОСМ | josm.ru | обо мне | a soldier will fight long and hard for a bit of colored ribbon

Offline

#317 2013-03-15 05:24:34

KonTur
Member
From: SPB
Registered: 2010-03-10
Posts: 1,512

Re: Актуальные задачи, требующие искусства программирования

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

Offline

#318 2013-03-15 21:30:02

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

Zkir wrote:

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

Этот артефакт - результат плохой параллельности двух направлений дорог. Даже на скрине видно как направления сходятся к нижнему краю.
Функцию JoinDirections3 от этого "заносит" и она делает приличный излом схлопнутой дороги.
Рисунок
Потом JoinAcute ткнувшись в точку A определяет, что точка C близка к отрезку AB (76 метров) и при этом точка C близка к точке B (96 метров).
Оба эти расстояния меньше длины схлопывания (100 метров) и таким образом B и C можно схлопнуть в одну точку - D. AD таким образом становится тупиком.
ИМХО, надо выправлять параллельность. Либо поставить поменьше длину схлопывания (JoinDistance) - 1й параметр у JoinAcute.


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#319 2013-03-15 22:15:02

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

Re: Актуальные задачи, требующие искусства программирования

таким образом B и C можно схлопнуть в одну точку - D

Может я чего-то не понимаю, но если BC можно схлопнуть, то тогда AB и AC можно схлопнуть тем более - эти отрезки короче.


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

Offline

#320 2013-03-15 23:19:53

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Актуальные задачи, требующие искусства программирования

JoinAcute занимается склеиванием близко лежаших отрезков. Находясь в точке A, алгоритм определяет отрезки AB и AC как лежащие достаточно близко для склеивания в один.

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

Last edited by OverQuantum (2013-03-15 23:25:59)


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#321 2013-04-01 17:34:12

evgenykatyshev
Member
From: Nizhny Novgorod
Registered: 2009-06-16
Posts: 1,403
Website

Re: Актуальные задачи, требующие искусства программирования

Очень хочется видеть в JOSM слой http://ant.dev.openstreetmap.org/bingimageanalyzer
Оказывается его можно подключить как обычный слой http://ant.dev.openstreetmap.org/bingim … x}/{y}.png

Last edited by lzhl (2013-05-08 13:33:03)


Нижегородская область: ФГИС, страница в ВК

Offline

#322 2013-05-08 13:35:20

evgenykatyshev
Member
From: Nizhny Novgorod
Registered: 2009-06-16
Posts: 1,403
Website

Re: Актуальные задачи, требующие искусства программирования

Хочется что бы в пресетах JOSM можно было сохранять последние выбранные значения чекбоксов и значений из списка возможных значений.


Нижегородская область: ФГИС, страница в ВК

Offline

#323 2013-05-08 13:55:02

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

Re: Актуальные задачи, требующие искусства программирования

lzhl wrote:

Хочется что бы в пресетах JOSM можно было сохранять последние выбранные значения чекбоксов и значений из списка возможных значений.

Это скорее в тему http://forum.openstreetmap.org/viewtopi … =6513&p=10

Слишком глюкоопасно - теги начнут расставляться сами (выбрали один раз bridge и все дороги начнут делаться мостами). Для этого есть Alt-A и список недавних тегов (Shift-щелками можно добавить несколько)

Offline

#324 2013-07-29 18:33:36

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

Re: Актуальные задачи, требующие искусства программирования

Так, небольшой ап темы, чисто информационный.

Упрощалка дорог, разработанная OverQuantum и переписанная freeExec на java, исправно работает, уже не первый месяц, для получения обзорных карт разных стран и карты европейских маршрутов. Каких-то критических проблем пока не выявлено.

Как ни странно я сейчас использую оба варианта, и vb6 и java smile

Оба комрада от приза отказались, скорее всего в обозримом будущем приз будет назначен за какую-нибудь другую задачу:) Например, жизнь показала, что для  еврообзорки нужна не только "упрощалка", но и "латалка дыр".


Об упрощалке,  что было сделано и зачем оно нужно, я буду рассказывать в эти выходные на конференции SotM Baltic.

Last edited by Zkir (2013-07-29 18:35:50)


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

Offline

#325 2013-08-08 19:08:46

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

Re: Актуальные задачи, требующие искусства программирования

Сформулирую задачку, она несколько перекликается с упрощалкой но конечная цель - другая.

Хочется генерить атласы маршрута. Т.е. иметь возможность развернуть ту-же М10 в линию, сохранив километраж вдоль пути, информацию об одновейности/двухвейности, развязках, мостах, паромных переправах, наличии ограждения, прилегающих городах и пои. +Иметь возможность хотябы примерно пересчитывать относительный километраж - в широту долготу.

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

На вход хотелось бы подавать osm/pbf
Для вывода хотелось бы подключать различные плагинчики.

Инструмент был бы весьма актуален для схем о.т. и длинных трасс/маршрутов.

Last edited by dkiselev (2013-08-08 19:10:54)


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

Offline

Board footer

Powered by FluxBB