3

Я создаю базу данных, содержащую имена и координаты всех остановок в моей локальной зоне. У меня есть все имена, хранящиеся в моей базе данных, и теперь мне нужно добавить координаты. Я пытаюсь получить их на веб-сайте, который содержит их в качестве меток на карте Google. Мне кажется, что они генерируются с локального сервера, а затем добавляются на карту. Однако я не могу точно определить, где сервер запрашивается для координат.Получить координаты маркеров Google Maps

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

Это веб-сайт, который я пытаюсь очистить. В метках отмечены синим автобус знак:

http://reiseplanlegger.skyss.no/scripts/travelmagic/TravelMagicWE.dll/?from=Brimnes+ferjekai+%28Eidfjord%29&to=

Вы также можете получить координаты одной метки, написав название остановки в поле поиска и толкая «Vis я kart ".

Я надеюсь, что кто-то может мне помочь.

ответ

4

При проверке с Firebug, кажется, что сайт, который вы упомянули получает данные в формате XML с помощью простых запросов AJAX, таких как:

http://reiseplanlegger.skyss.no/scripts/travelmagic/TravelMagicWE.dll/mapxml?x1=4.44921875&x2=5.8282470703125&y1=60.150391714056326&y2=60.524184817591276&loc=1

The (x1, y1), (x2, y2) определяют параметры (долготы, широты) окна просмотра. Каждый раз, когда карта перетаскивается, выдается новый запрос AJAX, который возвращает свежие данные.

Это ответ образец из запроса AJAX:

<stages> 
    <i n="Arna Stasjon Togstopp (Bergen)" sn="" v="12019888" t="2" i="0" x="5,465809" y="60,420116" sp="" st="Tog.GIF"/> 
    <i n="Arna Terminal (Bergen)" sn="" v="12014200" t="2" i="0" x="5,464333" y="60,420319" sp="" st="Buss.GIF"/> 
    <i n="Bjørkheim Ved Senter (Samnanger)" sn="" v="12426607" t="2" i="0" x="5,730484" y="60,402178" sp="" st="Buss.GIF"/> 
    <i n="Bjørkheim Ved Senter (Samnanger)" sn="" v="12426608" t="2" i="0" x="5,731842" y="60,401312" sp="" st="Buss.GIF"/> 
    <i n="Breistein Ferjekai (Bergen)" sn="" v="12017399" t="2" i="0" x="5,399175" y="60,490519" sp="" st="Ferge.GIF"/> 
    <i n="Eikelandsosen Terminal (Fusa)" sn="" v="12410510" t="2" i="0" x="5,747773" y="60,241479" sp="" st="Buss.GIF"/> 
</stages> 

Обратите внимание, что атрибут x является определение долготы, в то время как атрибут y является определение широты.


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

+1

Большое спасибо. Очень полезный ответ. Вот почему я люблю stackoverflow. Что касается части разрешений. Этот сайт принадлежит местному окружному правительству и оплачивается широкой общественностью. следовательно, информация считается общедоступной. Однако я попытался связаться с ними и попросить копию их базы данных, и они не посмели ответить. – AppDeveloper122

1

изучите исходные коды этой страницы. Карточка Google пуста из Google. Затем маркеры добавляются кодом. Скорее всего, координаты жестко закодированы на странице или по ссылке JS. Или может быть страница запрашивает их через Ajax. Опять же, вы увидите его в исходном коде.

Смежные вопросы