21

一部の結果「photo_reference」(「参照」に類似)値にあるGoogle Place Apiを使用しています。それを使用してその写真を取得する方法についての言及は見つかりません。「参照」を使用して PlaceDetail を取得する方法を知っており、photo_reference の使用法も同様であると確信していますが、この photo_reference 要求の JSON/XML URL が見つかりません。助けてくれてありがとう。パベル

4

6 に答える 6

40

こちらのドキュメントをご覧ください: https://developers.google.com/places/documentation/photos

彼らはこの新しい場所の写真機能を発表したばかりです

要するに、この新機能の使用方法は次のとおりです。

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

次の代わりに独自の値を置き換えるだけです。

  • PHOTO_REFERENCE
  • MAX_HEIGHT - 1 から 1600 までの整数値
  • MAX_WIDTH - 1 から 1600 までの整数値
  • YOUR_API_KEY

そして、あなたは終わった

于 2012-12-08T05:56:50.003 に答える
5

Places API は、Place Search リクエストで利用可能な場合は 1 つの場所の写真を返し、 Place Details リクエストでは最大 10 の場所の写真を返すことをサポートするようになりました。

リクエストで photos 配列が返された場合はphoto_reference、含まれている写真オブジェクトから、 and/or 、およびパラメータを使用してPlace Photo リクエストに を渡すことができます。maxheightmaxwidthsensorkey

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

詳細については、ドキュメントを参照してください。

于 2012-12-10T00:34:28.753 に答える
3

無料の写真リクエストはもうありませんのでご注意ください。現時点(2020 年 11 月)では、$7.0 for 1000 requests(ボリュームが最大 100,000 の場合)です。下の写真を確認してください。

Google プレイスの写真リクエストのお支払い情報

詳細については、Google プレイスのお支払い情報ページをご覧ください。

于 2020-11-13T11:04:21.623 に答える
2

ステップ 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()+"");
 }

これがみんなに役立つことを願っています。

于 2018-07-19T18:38:58.747 に答える