OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

Announcement

A fix has been applied to the login system for the forums - if you have trouble logging in please contact support@openstreetmap.org with both your forum username and your OpenStreetMap username so we can make sure your accounts are properly linked.

#1 2012-10-01 13:55:17

Shasoft
Member
Registered: 2009-08-03
Posts: 101

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,425
Website

Re: OSM XML - парсинг

Shasoft wrote:

или возможна ситуация
wA
rC
rB

Возможна

Offline

#3 2012-10-01 13:58:31

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

Re: OSM XML - парсинг

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: 101

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 - парсинг

andriano wrote:

все элементы в 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,636
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 - парсинг

andriano wrote:

Но как planet.osm, так и выгрузки по регионам строго следуют этому правилу.

Мне вебсервер osm.org перемешанное выдал, с тем и вожусь... Думаю, что типичная упорядоченность - не более чем побочный эффект использования контейнеров типа std::map.

Offline

#10 2012-10-02 07:19:34

Shasoft
Member
Registered: 2009-08-03
Posts: 101

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: 7,018

Re: OSM XML - парсинг

Надейтесь на лучшее, но предполагайте худшее.
То есть если всё ОК, то должно работать оптимально, если что-то иногда не так, то просто работать.

Offline

#13 2012-10-03 17:51:24

andriano
Member
Registered: 2009-06-15
Posts: 1,667

Re: OSM XML - парсинг

x10kHz wrote:

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

1. Не просто может отсутствовать, а непременно так оно и будет.
2. И не только ссылки из релейшна на несуществующие объекты, но и ссылки из пути на несуществующие узлы.
3. В локальных выгрузках такое стало наблюдаться после перехода на новый формат данных (хотя на сайте и написано, что, якобы, сохраняется преемственность).

Offline

Board footer

Powered by FluxBB