Могу ли я объединить API Google Geocoding и Google Places?

Я пытаюсь сделать поиск местоположения на основе PHP. Я хочу, чтобы он был как можно более «умным» найти адреса и отели, музеи и т. д..

Сейчас я использую Google Geocoding API, но проблема в том, что он может только найти адреса (когда я ввожу название отеля, он не находит ничего или какое-то место на другой стороне планеты).

Я посмотрел дальше и нашел API мест, которые могут найти все виды предприятий и других местах. Проблема в том, что я не думаю (хотя поправьте меня, если я ошибаюсь), он может найти нормальные адреса.

Таким образом, моя идеальная ситуация — возможность искать адреса и другие места одновременно. Я хотел бы получить список результатов, отсортированных по актуальность (определяется Google), или только наиболее актуальными результат.

Заранее спасибо!

0

Решение

Воутер Флорин,

Ваша текущая проблема имеет несколько компонентов:

  (1) the request/response from the Google Geocoding API
(2) the request/response from the Google Places API
(3) your workflow to process the responses/data from the above to API calls.

Основной целью вашего кода является поддержание согласованности между связанными и зависимыми объектами без ущерба для повторного использования кода (продолжение вашего рабочего процесса зависит от ваших ответов API). Чтобы убедиться в этом, вы должны использовать Образец наблюдателя ждать завершения ваших запросов, чтобы продолжить ваш рабочий процесс. Причина использования образец наблюдателя и не используя обещания в том, что PHP почти полностью однопоточный. Из-за этого реализация с обещанием будет блокировать ваш скрипт до его завершения.

Если вам удобнее использовать обещания, вы можете обещаю форк из основного скрипта, (используя семейство функций PCNTL). Это позволит вашему коду обещания работать в фоновом режиме, в то время как основной сценарий продолжается. Он активно использует pcntl_fork, который позволяет вам создавать новый поток. Когда Обещание завершается, оно возвращается. У этого есть недостатки — самый большой из них — неспособность сообщить основному процессу чем-либо, кроме сигналов.

Еще одна оговорка:

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

В моем случае я смог использовать Yelp API. Этот API действительно фантастический. Все, что вам нужно сделать, это выполнить GET запросите в API поиска, используя необязательный параметр долготы, широты (он также имеет параметр радиуса, чтобы ограничить ваш поиск). Благодаря этому мне удалось получить всевозможную информацию о компаниях в зависимости от местоположения: отели, рестораны, профессиональные услуги [врачи, стоматологи, физиотерапевты]), и я смог отсортировать ее по различным показателям (удовлетворенности, релевантности и т. Д.). ).

Пожалуйста, дай мне знать, если возникнут какие-либо вопросы!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]