You are not logged in.
- Topics: Active | Unanswered
Pages: 1
#1 2012-10-01 13:55:17
- Shasoft
- Member
- Registered: 2009-08-03
- Posts: 105
OSM XML - парсинг
Вопрос следующий: может ли в XML ссылка на объект встретиться ДО того, как сам объект?
К примеру есть отношение rC, состоящие из Way wA и Reletion rB
Всегда ли в XML файле будет
wA
rB
rC
или возможна ситуация
wA
rC
rB
Сам формат XML таких ограничений не накладывает, но может это оговорено в формате OSM?
Offline
#2 2012-10-01 13:57:34
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- Website
Re: OSM XML - парсинг
или возможна ситуация
wA
rC
rB
Возможна
Offline
#3 2012-10-01 13:58:31
- Sergey Astakhov
- Member
- From: St.Petersburg, Russia
- Registered: 2009-11-13
- Posts: 5,779
Re: OSM XML - парсинг
http://wiki.openstreetmap.org/wiki/XML#Assumptions
См. раздел Assumptions
Offline
#4 2012-10-01 18:52:48
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: OSM XML - парсинг
Вариант единственный: из relation может быть ссылка на relation с номером больше (а все элементы в osm-файле располагаются в порядке возрастания номеров).
Offline
#5 2012-10-01 18:59:36
- Shasoft
- Member
- Registered: 2009-08-03
- Posts: 105
Re: OSM XML - парсинг
Поэтому я и привел в примере relation, т.к. с остальными понятно, из-за своего расположения они не могут пересечься.
Offline
#6 2012-10-01 19:33:18
- Ivan Komarov
- Member
- Registered: 2008-10-02
- Posts: 1,050
Re: OSM XML - парсинг
все элементы в osm-файле располагаются в порядке возрастания номеров.
Не понял этого утверждения. Вот первые 4 узла из свежеэкспортированной области:
<node id="1138571735" lat="58.4631512" lon="28.5884826" user="Ivan Komarov" uid="69864" visible="true" version="1" changeset="7199893" timestamp="2011-02-06T05:14:08Z"/>
<node id="1820249289" lat="58.4604854" lon="28.6059857" user="Ivan Komarov" uid="69864" visible="true" version="1" changeset="12173194" timestamp="2012-07-10T12:42:35Z"/>
<node id="330406086" lat="58.4638914" lon="28.5676057" user="Ivan Komarov" uid="69864" visible="true" version="1" changeset="759841" timestamp="2009-01-09T08:47:41Z"/>
<node id="1138571834" lat="58.4610411" lon="28.6054127" user="Ivan Komarov" uid="69864" visible="true" version="1" changeset="7199893" timestamp="2011-02-06T05:14:12Z"/>
Или что-то другое имеется в виду?
Offline
#7 2012-10-01 20:03:55
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: OSM XML - парсинг
Мне такие файлы ни разу не попадались.
Вполне допускаю, что программа экспортер может что-то и перемешивать. Но как planet.osm, так и выгрузки по регионам строго следуют этому правилу.
Впрочем, стандартом оно не оговаривается.
Следовательно, общее правило: отношение может ссылаться на другое отношение, которое встречается в тексте после него - тем более остается справедливым.
Offline
#8 2012-10-01 21:37:19
- Alexandr Zeinalov
- Member
- From: New-Peredelkino, Moscow, RU
- Registered: 2009-08-26
- Posts: 1,698
- Website
Re: OSM XML - парсинг
Отношения вполне законно могут входить друг в друга...
Offline
#9 2012-10-01 22:11:09
- Ivan Komarov
- Member
- Registered: 2008-10-02
- Posts: 1,050
Re: OSM XML - парсинг
Но как planet.osm, так и выгрузки по регионам строго следуют этому правилу.
Мне вебсервер osm.org перемешанное выдал, с тем и вожусь... Думаю, что типичная упорядоченность - не более чем побочный эффект использования контейнеров типа std::map.
Offline
#10 2012-10-02 07:19:34
- Shasoft
- Member
- Registered: 2009-08-03
- Posts: 105
Re: OSM XML - парсинг
В общем картина ясна. Всем спасибо за ответы.
Offline
#11 2012-10-03 15:00:21
- x10kHz
- Member
- Registered: 2009-10-06
- Posts: 138
Re: OSM XML - парсинг
мало того что перемешано, так еще может отсутствовать какой-то объект на который ссылается релейшн например.
Давно очень такое было даже с планет.осм, пару лет назад...
Offline
#12 2012-10-03 15:32:20
- wowik
- Member
- From: Zelenograd
- Registered: 2009-09-29
- Posts: 9,302
Re: OSM XML - парсинг
Надейтесь на лучшее, но предполагайте худшее.
То есть если всё ОК, то должно работать оптимально, если что-то иногда не так, то просто работать.
Offline
#13 2012-10-03 17:51:24
- andriano
- Member
- Registered: 2009-06-15
- Posts: 1,667
Re: OSM XML - парсинг
мало того что перемешано, так еще может отсутствовать какой-то объект на который ссылается релейшн например.
Давно очень такое было даже с планет.осм, пару лет назад...
1. Не просто может отсутствовать, а непременно так оно и будет.
2. И не только ссылки из релейшна на несуществующие объекты, но и ссылки из пути на несуществующие узлы.
3. В локальных выгрузках такое стало наблюдаться после перехода на новый формат данных (хотя на сайте и написано, что, якобы, сохраняется преемственность).
Offline
Pages: 1