places placeautocompletefragment how google example address android api search maps

placeautocompletefragment - API de Google Places-Android



how to use place picker in android (2)

Estoy haciendo una aplicación para Android que necesita buscar en mi área local dentro de los 10km y mostrar los resultados en un mapa usando pines, por ejemplo: "Starbucks", "Wallmart", centro comercial, etc. La palabra de búsqueda que especifico en mi clase de actividad Y para ser claro: NO quiero abrir la búsqueda en los mapas de Google, quiero que muestre los resultados dentro de MI propia aplicación. Pero recibo un error en el código que ejecuta la búsqueda. El error aparece en las siguientes cosas:

Url: url no se puede resolver o no es un campo Ejecutar: El método execute () no está definido para el tipo HttpRequest Response: la respuesta no se puede resolver o no es un campo

Estoy usando tres paquetes: com.mycompany.applicationname = Paquete predeterminado, que contiene el código principal, incluido el código de búsqueda com.mycompany.applicationname.Model = Contiene PlaceAutoComplete, PlacesList, Place, etc. com.mycompany.applicationname.PlacesRequests = Contiene PlaceRequest .Java

Por favor, ayúdenme, realmente necesito ayuda y muchas gracias de antemano

Este es el código que estoy usando para ejecutar la búsqueda:

private static final String PLACES_SEARCH_URL = "https://maps.googleapis.com/maps/api/place/search/json?"; private static final boolean PRINT_AS_STRING = false; public void performSearch() throws Exception { try { System.out.println("Perform Search ...."); System.out.println("-------------------"); HttpRequestFactory httpRequestFactory = createRequestFactory(transport); HttpRequest request = httpRequestFactory.buildGetRequest(new GenericUrl(PLACES_SEARCH_URL)); request.url.put("key", API_KEY); request.url.put("location", lat + "," + lng); request.url.put("radius", 500); request.url.put("sensor", "false"); if (PRINT_AS_STRING) { System.out.println(request.execute().parseAsString()); } else { PlacesList places = request.execute().parseAs(PlacesList.class); System.out.println("STATUS = " + places.status); for (Place place : places.results) { System.out.println(place); } } } catch (HttpResponseException e) { System.err.println(e.response.parseAsString()); throw e; } }


Puede hacer esto usando Google API JAVA Client - Aquí hay un ejemplo usando el cliente java para obtener 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; } }