我在哪里检索 photo_reference 值以发出 Google Places Photos 请求?

Posted

技术标签:

【中文标题】我在哪里检索 photo_reference 值以发出 Google Places Photos 请求?【英文标题】:Where do I retrieve the photo_reference value to make a Google Places Photos request? 【发布时间】:2018-01-26 19:07:36 【问题描述】:

通过 Google 的 Place Photos documentation,我应该能够通过向附近的搜索、雷达或地点详细信息服务发出请求来检索 photo_reference 密钥。

我正在访问他们的地点详细信息服务,我收到了一组包含 10 个元素的照片,但这些元素仅包含 heightwidthhtml_attribution 键。我是否在这里遗漏了什么,或者他们的 API 发生了更改而没有更新他们的文档?

这是我的详细信息请求,其中place 是响应:

export function placeDetailsFetchData(placeId) 
  return (dispatch) => 
    const request =  placeId ;
    const service = new google.maps.places.PlacesService(document.createElement('div'));

    service.getDetails(request, (place, status) => 
      if (status == google.maps.places.PlacesServiceStatus.OK) 
        dispatch(
          type: PLACE_DETAILS_FETCH_DATA_SUCCESS,
          place
        );
       else 
        dispatch(placeDetailsHasErrored(true));
      
    );
  

这是响应中的照片值:

[
  
    "height": 3024,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/109733975839515761188/photos\">Chris Bair</a>"
    ],
    "width": 4032
  ,
  
    "height": 2992,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/100217631342523519461/photos\">Samir Soriano</a>"
    ],
    "width": 4000
  ,
  
    "height": 453,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/106775786962992563502/photos\">Frisco Fried</a>"
    ],
    "width": 604
  ,
  
    "height": 5312,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/111414489430298948350/photos\">Tu Lam</a>"
    ],
    "width": 2988
  ,
  
    "height": 1920,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/109551371558914502695/photos\">Kenny Reed</a>"
    ],
    "width": 2560
  ,
  
    "height": 4160,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/110844988640416794228/photos\">Vicious V</a>"
    ],
    "width": 3120
  ,
  
    "height": 2576,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/103079141129202103200/photos\">Romayne Ward</a>"
    ],
    "width": 1932
  ,
  
    "height": 5312,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/103167182117207780142/photos\">Michael C</a>"
    ],
    "width": 2988
  ,
  
    "height": 1836,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/116997882870097389214/photos\">Sam Johnson</a>"
    ],
    "width": 3264
  ,
  
    "height": 4032,
    "html_attributions": [
      "<a href=\"https://maps.google.com/maps/contrib/113862636441079805689/photos\">Wes Wu</a>"
    ],
    "width": 3024
  
]

【问题讨论】:

【参考方案1】:

google.maps.places.PlacePhoto 对象提供了方法getUrl(),它返回地点照片的 URL。使用此方法获取图片的 URL,Maps javascript API 不会暴露图片引用。

查看文档了解更多详情:

https://developers.google.com/maps/documentation/javascript/reference#PlacePhoto

place.photos.forEach(function (placePhoto) 
    var url = placePhoto.getUrl(
        maxWidth: 600,
        maxHeight: 400
    );
);

【讨论】:

以上是关于我在哪里检索 photo_reference 值以发出 Google Places Photos 请求?的主要内容,如果未能解决你的问题,请参考以下文章

返回值以记录时出现表达式错误

Places API 中的 photo_reference 字段是啥?

在 Django 视图中检索 Select2 多值以在后端使用

如何检索表的值以获取sql中两列的最大值

target.logElementTree() 从哪里检索信息?

FCM:哪里最好检索通知中显示的数据?