2017-01-27 16 views
0

Привет Я разрабатываю небольшое приложение для Android, в котором я показываю соседние места, используя google places api. Я пробовал со следующим запросом:Получить расстояние отфильтровано в близлежащих местах, используя google places api

https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankBy=distance&radius=5000&location=19.107991%2C73.001277&key=API_KEY_VAL&type=school 

Таким образом, над запросом возвращается близлежащие школы, но это не сортировка по расстоянию. Я попытался с другим запросом:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?rankby=distance&location=19.107991%2C73.001277&key=API_KEY_VAL&type=school 

Выше запрос дает мне расстояние отсортированному результат, но я не могу использовать radius в этом параметр Я случае.

Также я столкнулся с некоторыми изменениями в обоих запросах. В первом запросе он возвращает мне несколько школ в пределах 5 км. Во втором запросе он возвращает меня в близлежащие школы. Если я проверю оба результата, некоторые из близлежащих школ не присутствуют в запросе с радиусом в качестве параметра.

Мой ожидаемый выход требует около школы в радиусе 5 км с расстоянием сортировки. Делаете ли вы что-то неправильно в вышеуказанных запросах? Нужна помощь. Спасибо.

+0

Возможный дубликат [Показать текущее местоположение и соседние места и маршрут между двумя местами, используя API Карт Google в Android] (http://stackoverflow.com/questions/8428209/show-current-location-and-nearby-places- и маршрутный-между-два мест, используя Googl-) – Chisko

ответ

1

документация очень ясно относительно rankby и радиусами параметров:

радиус - Определяет расстояние (в метрах) в пределах которого должны быть получены результаты. Максимально допустимый радиус составляет 50 000 метров. Обратите внимание, что радиусне должен включаться, если задано ранг = расстояние (описано в разделе Необязательные параметры ниже).

rankby - Указывает, где указаны результаты. Обратите внимание, что ранг не должен включаться, если указан радиус (описанный в разделе «Обязательные параметры выше»).

https://developers.google.com/places/web-service/search#PlaceSearchRequests

Таким образом, нет никакого способа, чтобы использовать radius параметр в сочетании с rankby=distance.

Первый запрос в ваших примерах игнорирует rankBy (также чувствителен к регистру), поэтому вы получаете выдающиеся результаты в радиусе 5 км. В этом случае менее заметные, но близкие результаты могут быть опущены.

Обходным путем может быть получение результатов по расстоянию и отфильтровывать все места, где расстояние между location и координатой места больше 5000 метров.