一部の結果「photo_reference」(「参照」に類似)値にあるGoogle Place Apiを使用しています。それを使用してその写真を取得する方法についての言及は見つかりません。「参照」を使用して PlaceDetail を取得する方法を知っており、photo_reference の使用法も同様であると確信していますが、この photo_reference 要求の JSON/XML URL が見つかりません。助けてくれてありがとう。パベル
6 に答える
こちらのドキュメントをご覧ください: https://developers.google.com/places/documentation/photos
彼らはこの新しい場所の写真機能を発表したばかりです
要するに、この新機能の使用方法は次のとおりです。
次の代わりに独自の値を置き換えるだけです。
- PHOTO_REFERENCE
- MAX_HEIGHT - 1 から 1600 までの整数値
- MAX_WIDTH - 1 から 1600 までの整数値
- YOUR_API_KEY
そして、あなたは終わった
Places API は、Place Search リクエストで利用可能な場合は 1 つの場所の写真を返し、 Place Details リクエストでは最大 10 の場所の写真を返すことをサポートするようになりました。
リクエストで photos 配列が返された場合はphoto_reference
、含まれている写真オブジェクトから、 and/or 、およびパラメータを使用してPlace Photo リクエストに を渡すことができます。maxheight
maxwidth
sensor
key
https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CnRvAAAAwMpdHeWlXl-lH0vp7lez4znKPIWSWvgvZFISdKx45AwJVP1Qp37YOrH7sqHMJ8C-vBDC546decipPHchJhHZL94RcTUfPa1jWzo-rSHaTlbNtjh-N68RkcToUCuY9v2HNpo5mziqkir37WU8FJEqVBIQ4k938TI3e7bf8xq-uwDZcxoUbO_ZJzPxremiQurAYzCTwRhE_V0&sensor=false&key=AddYourOwnKeyHere
詳細については、ドキュメントを参照してください。
無料の写真リクエストはもうありませんのでご注意ください。現時点(2020 年 11 月)では、$7.0 for 1000 requests
(ボリュームが最大 100,000 の場合)です。下の写真を確認してください。
詳細については、Google プレイスのお支払い情報ページをご覧ください。
ステップ 1: Google プレイス フォトの呼び出しに使用する URL は次のとおりです。
String url = https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=PHOTOREF&key=YOUR_API_KEY
参照: https://developers.google.com/places/web-service/photos
ステップ 2: 上記の URL は別の URL にリダイレクトするため、HTTPClient を使用します。HTTPClient はリダイレクトを自動的に処理します。
コード:
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()+"");
}
これがみんなに役立つことを願っています。