places nearby name google example address api google-places-api

name - nearby search google api example



Google place Api PlaceDetails foto referencia (4)

Estoy usando Google Place Api, donde aparece en algunos resultados el valor "photo_reference" (similar a "reference"). No puedo encontrar ninguna mención sobre cómo usarlo para obtener esa foto. Sé cómo usar "referencia" para obtener PlaceDetail y estoy seguro de que el uso de photo_reference será similar, pero no puedo encontrar la URL de JSON / XML para esta solicitud de photo_reference. Gracias por cualquier ayuda. Pavel


Consulte la documentación aquí: https://developers.google.com/places/documentation/photos

Acaban de anunciar esta nueva función de fotos de lugares.

En resumen, así es como debes usar esta nueva característica:

https://maps.googleapis.com/maps/api/place/photo?photoreference=PHOTO_REFERENCE&sensor=false&maxheight=MAX_HEIGHT&maxwidth=MAX_WIDTH&key=YOUR_API_KEY

simplemente sustituye tus propios valores en lugar de:

  • FOTO_REFERENCIA
  • MAX_HEIGHT - valor int de 1 a 1600
  • MAX_WIDTH - valor int de 1 a 1600
  • YOUR_API_KEY

y has terminado


Después de iniciar el mapa puedes obtener detalles del lugar con sus imágenes.

const service = new window.google.maps.places.PlacesService(map); service.getDetails( { placeId: "some_place_id_here" }, (data, status) => { if (status === window.google.maps.places.PlacesServiceStatus.OK) { data.photos && data.photos.forEach(photo => { console.log(photo.getUrl({ maxWidth: 500, maxHeight: 500 })); }); } } );


La API de Lugares ahora admite la devolución de una foto de lugar si está disponible para una solicitud de Búsqueda de lugar y hasta diez fotos de lugar para una solicitud de Detalles de lugar .

Si se devuelve una matriz de fotos con su solicitud, puede pasar la photo_reference de foto de un objeto de foto contenido a una https://developers.google.com/places/documentation/photos con los maxheight y / o maxwidth , sensor y key :

https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CnRvAAAAwMpdHeWlXl-lH0vp7lez4znKPIWSWvgvZFISdKx45AwJVP1Qp37YOrH7sqHMJ8C-vBDC546decipPHchJhHZL94RcTUfPa1jWzo-rSHaTlbNtjh-N68RkcToUCuY9v2HNpo5mziqkir37WU8FJEqVBIQ4k938TI3e7bf8xq-uwDZcxoUbO_ZJzPxremiQurAYzCTwRhE_V0&sensor=false&key=AddYourOwnKeyHere

Por favor, consulte la https://developers.google.com/places/documentation/photos para más detalles.


Paso 1: La URL que debe usar para llamar a Google Place Photos es:

String url = https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=PHOTOREF&key=YOUR_API_KEY

Consulte: https://developers.google.com/places/web-service/photos

Paso 2: Dado que la URL anterior redirige a otra URL, use HTTPClient, ya que maneja automáticamente las cosas de redireccionamiento.

Código:

DefaultHttpClient hc = new DefaultHttpClient(); HttpGet httpget = new HttpGet(url); HttpContext context = new BasicHttpContext(); hc.setRedirectHandler(new DefaultRedirectHandler() { @Override public URI getLocationURI(HttpResponse response, HttpContext context) throws org.apache.http.ProtocolException { //Capture the Location header here - This is your redirected URL System.out.println(Arrays.toString(response.getHeaders("Location"))); return super.getLocationURI(response,context); } }); // Response contains the image you want. If you test the redirect URL in a browser or REST CLIENT you can see it''s data HttpResponse response = hc.execute(httpget, context); if(response.getStatusLine().getStatusCode() == 200) { // Todo: use the Image response HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instream = entity.getContent(); Bitmap bmp = BitmapFactory.decodeStream(instream); ImageView imageView = new ImageView(context); imageView.setImageBitmap(bmp); images.add(imageView); instream.close(); } } else { System.out.println(response.getStatusLine().getStatusCode()+""); }

Espero que esto ayude a todos.