Как разделить регион на регионы меньшего размера, используя широту, долготу и радиус (расстояние), в Google place Search API в Java?
Я использую Google Radar API для поиска мест в Java. Я даю запрос, используя широту, долготу и радиус (расстояние) конкретного региона. Я получаю около 200 ответов (максимум по этому API). Если я получу 200 ответов, мне придется разделить мой запрос на меньшие размеры, используя широту и долготу, чтобы я мог покрыть всю область круга, чтобы получить сведения обо всех местах в этом регионе. Итак, как разделить круговую область, используя широту, долготу и радиус? Так что только я могу получить все места в этом регионе. Пожалуйста, помогите мне.
Вот код,
Метод для вызова API, я указал широту, долготу, type= restaurant, radius = 20000 (чтобы найти рестораны в этом регионе в пределах 20 км)
public void performGooglePlaceSearch(double lati,double lang,int rad,String type,String key)
{
try{
String placeSearchURL="https://maps.googleapis.com/maps/api/place/radarsearch/json?location="+lati+","+lang+"&radius="+rad+"&types="+type+"&key="+key;
Client placeSearchClient = Client.create();
WebResource placeSearchWebResource = placeSearchClient.resource(placeSearchURL);
ClientResponse placeSearchClientResponse = placeSearchWebResource.accept("application/json").get(ClientResponse.class); //Here I will receive the json response.
String placeSearchOutput = placeSearchClientResponse.getEntity(String.class);
System.out.println(placeSearchOutput);
//To convert to Java object, I use this classes. Because, I need to convert from Json response to Java object.
ObjectMapper placeSearchMapper = new ObjectMapper();
// I created java classes in PlaceSearchResponse class for all the json responses I received, ie, latitude, longitude, id, place_id,
PlaceSearchResponse placeSearchResponse=placeSearchMapper.readValue(new URL(placeSearchURL), PlaceSearchResponse.class);
//Iterating all the Java objects ie, latitude, longitude, id, place_id
Iterator iter=(Iterator) placeSearchResponse.getResults().iterator();
while(iter.hasNext())
{
PlacesInfo placeDetails=(PlacesInfo) iter.next();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
Из этого кода выше, после итерации, я получаю максимум 200 ответов. Этот API дает максимум 200 результатов, потому что он ограничен 200. Если я получу 200 результатов, больше ответов не будет. Мне нужно разбить этот регион на более мелкие регионы, чтобы я больше не мог найти ресторанов в этом регионе.
1 ответ
Ты можешь использовать minPriceLevel and maxPriceLevel
разделить поиск на четыре результата, т.е. 0-1,1-2,2-3,3-4
String placeSearchURL="https://maps.googleapis.com/maps/api/place/radarsearch/json?location="+lati+","+lang+"&radius="+rad+"&types="+type+"&minprice="+min"+"&maxprice="+max"+ &key="+key;