¿Cómo obtener 20+ resultados de la API de Google Places?
Estoy desarrollando una aplicación en la que estoy recibiendo la lista de cajeros automáticos cerca del usuario. Para eso estoy usando la API de Google Places, pero cada vez que devuelve sólo 20 resultados. Quiero obtener más resultados. En el documento de la API se menciona que se devolverá 20 resultado, pero me gustaría saber que hay alguna manera de obtener más datos o tengo que crear mi propia base de datos para eso? También lo que encontré en la API es que no tiene todos los cajeros automáticos para la India. La información también no es exacta para algunos de la ubicación. Así que por favor, sugerirme alguna idea para que yo debería usar mi propia base de datos o no? Sé que puedo registrar lugares en los lugares de Google pero allí el problema es que cada vez que devuelve solamente 20 resultados; Si de alguna manera este problema es resolver, entonces será genial usar la API de Places.
Por favor amablemente me ayude
- ¿Cómo obtener resultados específicos del país en la API de Google Places para AutocompletePredictions en Android?
- Android Google Places API, getAutocompletePredictions devuelve el estado 'PLACES_API_ACCESS_NOT_CONFIGURED'
- Obtener Lat Lang de un place_id devuelto por autocompletar lugar api
- Google Places Api ordenar por distancia
- Obtenga el nombre de la ciudad y el código postal de Google Place API en Android
- Java.lang.IllegalArgumentException: Caracteres ilegales en la consulta
- Google lugares api iconos lista
- CreateRequestFactory con google-api-java-client-1.15.0-rc
- PLACES_API_INVALID_APP error de Android Play Places
- Cómo obtener resultados de lugares cercanos desde la ubicación del usuario mediante la API de Google Maps en Android
- Cómo filtrar los resultados del selector de lugares por PlaceType?
- Autocompletado de la API de Google Places: REQUEST_DENIED
- Cómo personalizar el diseño del cuadro de diálogo de widget de PlaceAutocomplete a lugares de la lista
Según la documentación: http://code.google.com/intl/en/apis/maps/documentation/places/#PlaceSearchResponses
EDITAR: Colocar la API ahora admite la paginación de hasta 60 resultados. Vea a continuación para más detalles.
La API de Places devolverá hasta 20 establecimientos por consulta; Sin embargo, cada búsqueda puede devolver hasta 60 resultados, divididos en tres páginas. Si su búsqueda devolverá más de 20, la respuesta de búsqueda incluirá un parámetro adicional – next_page_token. Pase el valor de next_page_token al parámetro page_token de una nueva búsqueda de lugar para ver el siguiente conjunto de 20 resultados.
También hay terminos de servicio estrictos que especifican que no se puede pretratar, caché o Almacenar contenido a menos que sea el identificador de contenido o clave que se le permite almacenar, es decir, un token de referencia de una búsqueda de lugares: http://code.google.com /intl/en/apis/maps/terms.html#section_10_1_3
En cuanto a no poder encontrar cajeros automáticos en la India. Todos los lugares se clasifican bajo el establishment
tipo hasta que Google tiene suficientes metadatos sobre un lugar para clasificarlo en tipos de lugar más específicos como ATM
, cafe
, bar
, etc Un trabajo que puede encontrar más resultados es utilizar el parámetro de keyword
en su solicitud con Algo así como "ATM", "banco" o "finanzas" como el valor. Según la documentación: http://code.google.com/apis/maps/documentation/places/ El parámetro de keyword
se compara con todos los campos disponibles, incluyendo, pero sin limitarse a, nombre, tipo y dirección, así como comentarios de los clientes Y otros contenidos de terceros.
La API de Google recupera el resultado de 20 páginas y, a continuación, usamos la siguiente página de archivo de la primera página de xml de Google como resultado.
1) https://maps.googleapis.com/maps/api/place/search/xml?location=Enter latitude,Enter Longitude&radius=10000&types=store&hasNextPage=true&nextPage()=true&sensor=false&key=Enter Google_Map_key
En el segundo paso se usan los datos next_page_token de la primera página
2) https://maps.googleapis.com/maps/api/place/search/xml?location=Enter Latitude,Enter Longitude&radius=10000&types=store&hasNextPage=true&nextPage()=true&sensor=false&key=enter google_map_key &pagetoken="Enter the first page token Value"
Puede hacerlo usando Google API JAVA Client – Aquí hay un ejemplo usando el cliente java para obtener todos los 60 resultados.
public PlacesList search(double latitude, double longitude, double radius, String types) throws Exception { try { HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT); HttpRequest request = httpRequestFactory .buildGetRequest(new GenericUrl("https://maps.googleapis.com/maps/api/place/search/json?")); request.getUrl().put("key", YOUR_API_KEY); request.getUrl().put("location", latitude + "," + longitude); request.getUrl().put("radius", radius); request.getUrl().put("sensor", "false"); request.getUrl().put("types", types); PlacesList list = request.execute().parseAs(PlacesList.class); if(list.next_page_token!=null || list.next_page_token!=""){ Thread.sleep(4000); /*Since the token can be used after a short time it has been generated*/ request.getUrl().put("pagetoken",list.next_page_token); PlacesList temp = request.execute().parseAs(PlacesList.class); list.results.addAll(temp.results); if(temp.next_page_token!=null||temp.next_page_token!=""){ Thread.sleep(4000); request.getUrl().put("pagetoken",temp.next_page_token); PlacesList tempList = request.execute().parseAs(PlacesList.class); list.results.addAll(tempList.results); } } return list; } catch (HttpResponseException e) { return null; } }
En la página de lugares de Google en: https://developers.google.com/places/documentation/search En "Solicitudes de búsqueda de radar" se indica que mediante: https://maps.googleapis.com/maps/api/place/radarsearch / Output? Obtienes 200 resultados usando esta llamada, pero observa que cada llamada usa 5 peticiones contra tu cuota.
Por favor, intente debajo de url con los parámetros siguientes
Donde empieza = No de resultados, por ejemplo, comience desde 0 o 10 0r 20 –
Puede obtener más resultados del token siguiente página:
https://maps.googleapis.com/maps/api/place/textsearch/json?query=[your search key word]&location=latitude,longitude&radius=value&key=[your API key]&next_page_token=next_page_token value
- ¿Cómo iniciar AccessibilityService?
- Actividad de inicio de Android al presionar elemento ListView de widget