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:
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.