Подтвердить что ты не робот

Обнаружение ближайшей остановки перехода из данного места

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

Вот что я имел в виду:

Если я использую Google Map для запроса "Transit Stop около местоположения (например, Bugis Street Singapore)" , тогда он вернет нас всех что я хочу. Как показано на картинке. Но мне нужен его API, чтобы получить эти детали. (например, автобусное сообщение №, идентификатор остановки автобуса и т.д., как показано на рисунке). Но я не мог найти.

Bus Stop

Вот что я пробовал

  • Я пробовал использовать Google Map Near Place API, чтобы найти место с тип transit_station, bus_station, train_station и т.д.. Но все они возвращают нулевой результат. Я мог использовать этот API только для поиска Непосредственного места интереса, но не рядом с ним.

  • Я также проверил Google Transit API, но я только нашел API для вставки транзита данные в Google, но не для его извлечения. Я думаю, Google еще не опубликовал API транзита.


Дополнительная информация

Я проверил сайт Gothere.sg. И путают Как? потому что они могут обнаружить ближайший транзит. Это только потому, что они указывают направление "От-до".

Я прочитал довольно похожий вопрос об обнаружении соседнего маршрута. Возможно, пока невозможно использовать API Google.

Но для меня ничего невозможного

Последний курорт

В качестве последней инстанции я также проконсультирую с провайдером publictransport.sg. Я взламываю API. И выяснил, что он может предоставить мне транзитную остановку с некоторой координатой. Но ему не хватает API, который найден на Google Map.

Итак, одним обходным решением, которое я мог придумать на данный момент, является использование провайдера в этом случае, это publictransport.sg, которые дают мне Stop ID и его координаты. Для этого во-первых, мне нужно перевести имя местоположения с помощью Google GeoCoding API в Координатор, тогда мне нужно создать свой собственный подсчет, чтобы найти ближайшую станцию, сравнив найденный Координат со всей координатой станции, которую имеет поставщик.

Теперь это возможно для меня, но очень болезненно: -)


Вернуться к вопросу:

Есть ли способ получить все данные транзитной остановки из заданного местоположения (используя API Карт Google или любой другой API)? и как вы это сделали?


Спасибо

По крайней мере, спасибо за чтение моего длинного вопроса. Я ценю любую помощь от вас. Заранее спасибо: -)

4b9b3361

Ответ 1

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

Просто выполните запрос с параметрами:

  • location (latlng -объект данного местоположения)
  • радиус (радиус для поиска в метрах)
  • (массив допустимых типов, например ['bus_station','subway_station'])

Оформить скрипт: http://jsfiddle.net/doktormolle/aZrvs/

Для получения дополнительной информации (услуга автобуса №, идентификатор остановки автобуса) У меня сейчас нет хорошей идеи.

Должен быть способ, эти данные на maps.google.com будут получены с помощью AJAX, так что есть ressource. Но до тех пор, пока нет публичного API для получения этих результатов, было бы нецелесообразно использовать этот ресурс.

Ответ 2

Вы все еще можете перечислить все номер службы шины, идентификатор шины (имена станций) после получения данных google-places-api, как @Dr.Molle: said.

Откройте веб-страницу детали ['result'] ['url'], а затем XPath строку списка идентификаторов шины.

Ниже приведен пример получения информации о автобусе Тайбэя вокруг местоположения (широта, долгота). Более подробная информация приведена в https://github.com/MikimotoH/gisTools/blob/master/google_place.py

places = get_web_json(
    'https://maps.googleapis.com/maps/api/place/nearbysearch/json?' +
    'key=%s&location=%f,%f' % (apikey, lat, lng) +
    '&rankby=distance&language=zh-TW&types=bus_station')
if places['status'] == 'OK':
    for result in places['results']:
        placeid = result['place_id']
        detail = get_web_json(
            'https://maps.googleapis.com/maps/api/place/details/' +
            'json?key=%s&placeid=%s' % (apikey, placeid) +
            '&language=zh-TW')
        station = detail['result']['name']
        loc = detail['result']['geometry']['location']
        buspage = get_webpage(detail['result']['url'])
        tree = lxml.html.document_fromstring(buspage)
        bus_elm = tree.xpath("/html/body/div[1]/div/div[4]/div[4]/div/div/div[2]/div/div[2]/div[1]/div[2]/div/div/div[2]/div/table/tr/td")[0]
        buses = list(filter(lambda s: len(s.strip()) > 0,
                            bus_elm.text_content().strip().split()))
        yield (station, float(loc['lat']), float(loc['lat']), buses)

Ответ 3

Добавление & output = json к вашему первоначальному запросу (http://maps.google.com/maps?q=transit%20stop%20near%20New%20Bugis%20Street%20Singapore&output=json), не является законный способ получить эту информацию?