OpenLayers и БД OSM на GIS-Lab'e

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Stud
Интересующийся
Сообщения: 46
Зарегистрирован: 12 сен 2010, 06:16
Репутация: 0

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Stud » 18 ноя 2010, 13:41

Или я пытаюсь избрести колесо? Если есть другие варианты, то может кто расскажет?

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Mavka » 18 ноя 2010, 14:32

Хочу сделать отображение маршрутов общественного транспорта.
Вот это понял. Дальше - ни слова.
Что такое - "ОСМфайл"? Как он связан с OpenLayers?

Маршрут. Есть подложка (скажем, OpenStreetMap). Сверху накладываем растровый слой с маршрутом (WMS) или загружает откуда то вектор (WFS, GeoJSON, GeoRSS и т.п.) и рисуем в векторном слое.
лангольеры под окном жрали время ом-ном-ном

Stud
Интересующийся
Сообщения: 46
Зарегистрирован: 12 сен 2010, 06:16
Репутация: 0

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Stud » 18 ноя 2010, 14:48

Тогда вопрос, как загружать вектор кусочками, в зависимости от видиой области? И еще, я уже совсем запутался.

1. Нужно сделать отображение маршрутов на подложке ОСМ. Маршрут должен быть отражен так, чтобы его части (для начала например автобусные остановки) были интерактивные, т.е. я могу тыкнуть в остановку и получить какую-то информацию (номер маршрута, и т.д.)

2. У меня в наличии имеется база MySQL c данными о маршруте (ноды и веи из ОСМ по которым проходит маршрут), плюс есть доступ к данным ОСМ на Гис-лабе.

3. Как из всего выше перечисленного получить то, что нужно? Какие данные и в каком формате нужны? Как их можно получить?

Вот, не больше и не меньше :)

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Mavka » 18 ноя 2010, 15:11

лангольеры под окном жрали время ом-ном-ном

Stud
Интересующийся
Сообщения: 46
Зарегистрирован: 12 сен 2010, 06:16
Репутация: 0

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Stud » 18 ноя 2010, 15:27

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

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Mavka » 18 ноя 2010, 16:06

Совершенно не имеет значения что и где лежит. В OpenLayers вы должны предоставить или растр или вектор в понятных ему форматах.

Что такое "в виде релейшинов в осм"? Опишите их на примитивном уровне. В какой форме эти данные. (Мне не хочется лезть в OSM и разбираться.)
лангольеры под окном жрали время ом-ном-ном

Stud
Интересующийся
Сообщения: 46
Зарегистрирован: 12 сен 2010, 06:16
Репутация: 0

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Stud » 18 ноя 2010, 16:15

Mavka писал(а):Совершенно не имеет значения что и где лежит. В OpenLayers вы должны предоставить или растр или вектор в понятных ему форматах.

Что такое "в виде релейшинов в осм"? Опишите их на примитивном уровне. В какой форме эти данные. (Мне не хочется лезть в OSM и разбираться.)
Вот пример одного маршрута:

Код: Выделить всё

  <?xml version="1.0" encoding="UTF-8" ?> 
- <osm version="0.6" generator="xapi: OSM Extended API 2.0" attribution="http://wiki.openstreetmap.org/wiki/Attribution" xmlns:xapi="http://www.informationfreeway.org/xapi/0.6" xapi:uri="/api/0.6/relation[route=bus][bbox=36,55.0,37,56.0]" xapi:planetDate="20101114" xapi:copyright="2010 OpenStreetMap contributors" xapi:license="Creative commons CC-BY-SA 2.0" xapi:bugs="For assistance or to report bugs contact 80n80n@gmail.com" xapi:instance="xapiTela">
  <bounds minlat="55" minlon="36" maxlat="56" maxlon="37" /> 
- <- <way id="75467485" visible="true" timestamp="2010-09-17T18:07:30Z" version="3" changeset="5805818" user="Stud555" uid="313900">
  <nd ref="287851463" /> 
  <nd ref="287852013" /> 
  <tag k="addr:postcode" v="143500" /> 
  <tag k="cladr:code" v="50009001000000200" /> 
  <tag k="cladr:name" v="25 лет Октября" /> 
  <tag k="cladr:suffix" v="Улица" /> 
  <tag k="highway" v="residential" /> 
  <tag k="name" v="улица 25 лет Октября" /> 
  </way>
- <way id="75467490" visible="true" timestamp="2010-09-17T18:04:10Z" version="2" changeset="5805818" user="Stud555" uid="313900">
  <nd ref="287851463" /> 
  <nd ref="287851578" /> 
  <tag k="addr:postcode" v="143500" /> 
  <tag k="cladr:code" v="50009001000006000" /> 
  <tag k="cladr:name" v="Чеховский" /> 
  <tag k="cladr:suffix" v="Переулок" /> 
  <tag k="highway" v="residential" /> 
  <tag k="name" v="Чеховский переулок" /> 
  </way>
- <way id="75467492" visible="true" timestamp="2010-09-17T18:04:30Z" version="2" changeset="5805818" user="Stud555" uid="313900">
  <nd ref="287852013" /> 
  <nd ref="890972402" /> 
  <nd ref="287851653" /> 
  <tag k="addr:postcode" v="143500" /> 
  <tag k="cladr:code" v="50009001000003300" /> 
  <tag k="cladr:name" v="Почтовый" /> 
  <tag k="cladr:suffix" v="Переулок" /> 
  <tag k="highway" v="residential" /> 
  <tag k="name" v="Почтовый переулок" /> 
  </way>
- <way id="75467494" visible="true" timestamp="2010-09-17T18:05:44Z" version="3" changeset="5805818" user="Stud555" uid="313900">
  <nd ref="287851578" /> 
  <nd ref="287851653" /> 
  <tag k="addr:postcode" v="143500" /> 
  <tag k="cladr:code" v="50009001000002600" /> 
  <tag k="cladr:name" v="Народного Ополчения" /> 
  <tag k="cladr:suffix" v="Улица" /> 
  <tag k="highway" v="residential" /> 
  <tag k="name" v="улица Народного ополчения" /> 
  </way>
- <way id="78489691" visible="true" timestamp="2010-09-22T07:36:15Z" version="1" changeset="5843092" user="Stud555" uid="313900">
  <nd ref="287852213" /> 
  <nd ref="880141233" /> 
  <tag k="addr:postcode" v="143500" /> 
  <tag k="cladr:code" v="50009001000002000" /> 
  <tag k="cladr:name" v="Ленина" /> 
  <tag k="cladr:suffix" v="Улица" /> 
  <tag k="highway" v="service" /> 
  <tag k="name" v="улица Ленина" /> 
  <tag k="oneway" v="yes" /> 
  </way>
- <relation id="1149268" visible="true" timestamp="2010-09-22T07:36:16Z" version="13" changeset="5843092" user="Stud555" uid="313900">
  <member type="node" ref="623726175" role="stop:forward" /> 
  <member type="way" ref="74665554" role="forward" /> 
  <member type="way" ref="74665552" role="forward" /> 
  <member type="way" ref="26302580" role="backward" /> 
  <member type="way" ref="23124495" role="backward" /> 
  <member type="node" ref="880141329" role="stop:forward" /> 
  <member type="way" ref="75373328" role="backward" /> 
  <member type="way" ref="75380011" role="backward" /> 
  <member type="way" ref="74467776" role="backward" /> 
  <member type="way" ref="74662611" role="backward" /> 
  <member type="node" ref="880141320" role="stop_forward" /> 
  <member type="way" ref="26279390" role="forward" /> 
  <member type="way" ref="75078349" role="forward" /> 
  <member type="node" ref="880141273" role="stop_forward" /> 
  <member type="way" ref="74662612" role="forward" /> 
  <member type="way" ref="75078351" role="" /> 
  <member type="way" ref="74662610" role="" /> 
  <member type="node" ref="880141289" role="stop:forward" /> 
  <member type="way" ref="26302652" role="forward" /> 
  <member type="way" ref="75078350" role="forward" /> 
  <member type="way" ref="78489691" role="forward" /> 
  <member type="way" ref="75078352" role="forward" /> 
  <member type="way" ref="75078353" role="forward" /> 
  <member type="way" ref="75078354" role="forward" /> 
  <member type="way" ref="74846175" role="forward" /> 
  <member type="way" ref="26302604" role="forward" /> 
  <member type="node" ref="880141297" role="stop_backward" /> 
  <member type="node" ref="880141258" role="stop_backward" /> 
  <tag k="colour" v="blue" /> 
  <tag k="description" v="ст. Истра - Больница" /> 
  <tag k="ref" v="7" /> 
  <tag k="route" v="bus" /> 
  <tag k="type" v="route" /> 
  </relation>
- <relation id="1149356" visible="true" timestamp="2010-08-29T16:33:57Z" version="9" changeset="5627841" user="Stud555" uid="313900">
  <member type="node" ref="623726175" role="forward:stop" /> 
  <member type="way" ref="74665552" role="" /> 
  <member type="way" ref="74665554" role="forward" /> 
  <member type="way" ref="26302604" role="" /> 
  <member type="way" ref="74846175" role="" /> 
  <member type="way" ref="75078354" role="" /> 
  <member type="way" ref="74666751" role="forward" /> 
  <member type="way" ref="26279390" role="forward" /> 
  <member type="way" ref="75078349" role="forward" /> 
  <member type="node" ref="880141320" role="forward:stop" /> 
  <member type="node" ref="880141273" role="forward:stop" /> 
  <member type="way" ref="74662608" role="forward" /> 
  <member type="way" ref="54851099" role="forward" /> 
  <member type="way" ref="52390061" role="" /> 
  <member type="node" ref="287853652" role="stop" /> 
  <member type="way" ref="52390063" role="" /> 
  <member type="way" ref="23265443" role="" /> 
  <member type="way" ref="26260270" role="" /> 
  <member type="way" ref="26302930" role="" /> 
  <member type="node" ref="882131513" role="forward:stop" /> 
  <member type="node" ref="882131516" role="forward:stop" /> 
  <member type="way" ref="26302928" role="" /> 
  <member type="node" ref="882131514" role="forward:stop" /> 
  <member type="node" ref="882131506" role="stop" /> 
  <member type="node" ref="882131508" role="backward:stop" /> 
  <member type="way" ref="74666748" role="backward" /> 
  <member type="way" ref="75101801" role="backward" /> 
  <member type="node" ref="886107033" role="stop" /> 
  <tag k="colour" v="green" /> 
  <tag k="description" v="ст. Истра - Новоиерусалим" /> 
  <tag k="ref" v="4" /> 
  <tag k="route" v="bus" /> 
  <tag k="type" v="route" /> 
  </relation>
- <relation id="1159133" visible="true" timestamp="2010-09-02T08:50:41Z" version="3" changeset="5660268" user="Stud555" uid="313900">
  <member type="way" ref="75467490" role="forward" /> 
  <member type="way" ref="75467494" role="forward" /> 
  <member type="way" ref="75467492" role="backward" /> 
  <member type="way" ref="75467485" role="backward" /> 
  <member type="node" ref="890972409" role="stop" /> 
  <member type="node" ref="890972402" role="stop" /> 
  <member type="node" ref="890972413" role="stop" /> 
  <tag k="description" v="Тестовый маршрут" /> 
  <tag k="ref" v="99" /> 
  <tag k="route" v="bus" /> 
  <tag k="type" v="route" /> 
  </relation>
  </osm>

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Mavka » 18 ноя 2010, 16:28

Где геометрия?
лангольеры под окном жрали время ом-ном-ном

Stud
Интересующийся
Сообщения: 46
Зарегистрирован: 12 сен 2010, 06:16
Репутация: 0

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Stud » 18 ноя 2010, 20:23

Вот геометрия:

Код: Выделить всё

  <node id='856396579' lat='55.7516228' lon='38.0080868' version='2' changeset='5687688' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-05T13:41:16Z'>
  </node>
  <node id='856452951' lat='55.7516222' lon='38.0078053' version='1' changeset='5471606' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-12T10:01:22Z'>
  </node>
  <node id='856452954' lat='55.7516151' lon='38.005949' version='1' changeset='5471606' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-12T10:01:22Z'>
  </node>
  <node id='856396522' lat='55.7516134' lon='38.0055064' version='1' changeset='5470612' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-12T09:00:22Z'>
  </node>
  <node id='227352575' lat='55.7515228' lon='37.9861192' version='5' changeset='6321972' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-11-08T16:33:33Z'>

  </node>

  <node id='99992996' lat='55.7515317' lon='37.98663' version='6' changeset='5716909' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-08T12:43:53Z'>

    <tag k='crossing' v='uncontrolled'/>

  </node>

  <node id='895292549' lat='55.7515378' lon='37.987322' version='2' changeset='5716909' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-08T12:43:54Z'>

  </node>

  <node id='905116401' lat='55.7515955' lon='37.9921132' version='1' changeset='5741064' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-10T13:05:00Z'>

  </node>

  <node id='637696852' lat='55.7516127' lon='37.9935405' version='3' changeset='5654398' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-01T14:21:02Z'>

    <tag k='highway' v='crossing'/>

  </node>

  <node id='218562735' lat='55.7516188' lon='37.9939375' version='6' changeset='5654398' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-01T14:21:02Z'>

  </node>

  <node id='248731236' lat='55.7503698' lon='37.9626758' version='7' changeset='5917374' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-30T06:49:37Z'>

  </node>

  <node id='931483404' lat='55.7502883' lon='37.963915' version='2' changeset='6051898' user='Ilyin19' uid='356391' visible='true' timestamp='2010-10-15T19:49:20Z'>

    <tag k='highway' v='speed_camera'/>

  </node>

  <node id='950716400' lat='55.7502618' lon='37.96447' version='1' changeset='6051898' user='Ilyin19' uid='356391' visible='true' timestamp='2010-10-15T19:49:18Z'>

  </node>

  <node id='248828743' lat='55.7504362' lon='37.961721' version='8' changeset='5917374' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-30T06:49:39Z'>

  </node>

  <node id='903858945' lat='55.7504664' lon='37.9613562' version='2' changeset='5917374' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-30T06:49:38Z'>

  </node>

  <node id='903859267' lat='55.7505822' lon='37.9607756' version='1' changeset='5730931' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-09T09:12:19Z'>

  </node>

  <node id='248828737' lat='55.7506658' lon='37.9598015' version='3' changeset='5470028' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-12T08:48:29Z'>

  </node>

  <node id='248828733' lat='55.7506959' lon='37.9596138' version='3' changeset='5470028' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-12T08:48:29Z'>

  </node>

  <node id='512307511' lat='55.7507593' lon='37.9594904' version='2' changeset='5470028' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-12T08:48:29Z'>

  </node>

  <node id='248828735' lat='55.7508470' lon='37.9594248' version='2' changeset='2665171' user='Hind' uid='79836' visible='true' timestamp='2009-09-28T15:05:28Z'>

  </node>

  <node id='248736245' lat='55.7509899' lon='37.9593616' version='3' changeset='2665171' user='Hind' uid='79836' visible='true' timestamp='2009-09-28T15:05:28Z'>

  </node>

  <node id='248736246' lat='55.7511126' lon='37.9593765' version='4' changeset='5489108' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-14T11:14:13Z'>

  </node>

  <node id='248736247' lat='55.7513028' lon='37.9594248' version='4' changeset='5489108' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-14T11:14:06Z'>

  </node>

  <node id='248736248' lat='55.7517979' lon='37.959575' version='4' changeset='5489108' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-14T11:14:06Z'>

  </node>

  <node id='248736249' lat='55.7519972' lon='37.9595804' version='3' changeset='5489108' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-14T11:14:16Z'>

  </node>

  <node id='248736250' lat='55.7521602' lon='37.9595321' version='3' changeset='5489108' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-14T11:14:16Z'>

  </node>

  <node id='914204545' lat='55.7525016' lon='37.9593608' version='1' changeset='5792686' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-09-16T06:31:15Z'>

  </node>

  <node id='860076173' lat='55.7526251' lon='37.9593175' version='1' changeset='5489108' user='LexIgnatov' uid='316868' visible='true' timestamp='2010-08-14T11:14:16Z'>

  </node>

Stud
Интересующийся
Сообщения: 46
Зарегистрирован: 12 сен 2010, 06:16
Репутация: 0

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Stud » 18 ноя 2010, 22:27

Нашел проект, который выполняет теже функции, что и мне нужны.

Проект
http://osm.virtuelle-loipe.de/restricti ... yers=B00TT

Нужный мне запрос:
GET http://osm.virtuelle-loipe.de/restricti ... ,55.914063

вот только так и не понял, кто делает этот запрос, кто получает данные по этому запросу и как эти данные выводятся :(

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Mavka » 19 ноя 2010, 09:50

Пишете cgi-скрипт на php или python:

Он принимает в качестве параметра BBOX.
Делает запросы в БД (или по OSM API) и получает приведенные вам документы.
Парсит XML, собирает в одну кучу и создает чистый GeoJSON.

В OpenLayers загружаете данные через loadURL (формат соответственно GeoJSON).

P.S. OpenStreetMap API v0.6.
лангольеры под окном жрали время ом-ном-ном

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: OpenLayers и БД OSM на GIS-Lab'e

Сообщение Mavka » 18 мар 2011, 11:36

Близко по теме: о работе в UMN MapServer с массивами PostgreSQL.
лангольеры под окном жрали время ом-ном-ном

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 27 гостей