J'utilise Google Place API où se trouve sur certains résultats "photo_reference" (semblable à "référence"). Je ne trouve aucune mention sur cette façon de l'utiliser pour obtenir cette photo. Je sais comment utiliser "Référence" pour se placer et je suis sûr que l'utilisation de photo_reference sera similaire, mais je ne trouve pas d'URL JSON/XML pour cette demande photo_reference. Merci pour toute aide. Pavé
Veuillez consulter la documentation ici: https://developers.google.com/places/documentation/photos
Ils viennent d'annoncer ce nouveau placer des photos
En bref, c'est ainsi que vous devriez utiliser cette nouvelle fonctionnalité:
il suffit de substituer vos propres valeurs à la place de:
et vous avez terminé
Les endroits API prend désormais en charge le retour d'une photo de lieu si disponible pour A Place de recherche de la demande et jusqu'à dix photos de placement pour une Demande de détail de lie .
Si une matrice de photos est renvoyée avec votre demande, vous pouvez passer le photo_reference
à partir d'un objet de photo contenue à une Placez la demande de photo avec le maxheight
et/ou maxwidth
, sensor
et key
_ paramètres:
https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CnRvAAAAwMpdHeWlXl-lH0vp7lez4znKPIWSWvgvZFISdKx45AwJVP1Qp37YOrH7sqHMJ8C-vBDC546decipPHchJhHZL94RcTUfPa1jWzo-rSHaTlbNtjh-N68RkcToUCuY9v2HNpo5mziqkir37WU8FJEqVBIQ4k938TI3e7bf8xq-uwDZcxoUbO_ZJzPxremiQurAYzCTwRhE_V0&sensor=false&key=AddYourOwnKeyHere
S'il vous plaît voir la Documentation pour plus de détails.
Après avoir initié une carte, vous pouvez obtenir des détails avec ses images
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 }));
});
}
}
);
Étape 1: L'URL à utiliser pour appeler Google Place Photos est:
String url = https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=PHOTOREF&key=YOUR_API_KEY
Reportez-vous: https://developers.google.com/places/web-service/photos
Étape 2: Étant donné que l'URL ci-dessus redirige vers une autre URL, utilisez httpclient, car elle gère automatiquement les trucs de redirection.
Code:
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()+"");
}
J'espère que cela aide tout le monde.