使用angular获取正确的Google Place照片URL

时间:2018-07-27 14:52:36

标签: angular google-maps google-maps-api-3 google-places-api

我使用角度5从Google Place检索照片网址,如下所示:

...
var request = {
  location: new google.maps.LatLng(this.mylat,this.mylng),
  radius: 100,
  type: this.searchtype
};
let places = new google.maps.places.PlacesService(this.mymap);
places.nearbySearch(request, (results, status) => {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    results.forEach((place, index) => {
     var img_url = place.photos[0].getUrl({"maxWidth": 200, "maxHeight": 200}); // This URL works only for a few days..
    });
  }
})
...

此URL存储在我的Firestore数据库中,供以后使用。

问题: Google地图提供了一个临时URL(仅有效几天)。 该URL重定向到“真实”(永久)URL。

示例:

临时网址:https://maps.googleapis.com/maps/api/place/js/PhotoService.GetPhoto?1sCmRaAAAAw_I6Al73qDad8ouQIOKMh38e_CRFB3bWj3hh7hBGeJB6YoWfeBfmDQkptvjuoval_kHABgM_yiJlDpmVF7XnMBu0LbhGbekdRCdezWbj4K2_h5scVqs_-peixhu-E83DEhBTeZpeIgJsAmzzbCyPdZg9GhRls6eH4OzIalD2Xy5CuIKrOxbduw&3u200&4u200&5m1&2e1&key=MYKEY&callback=none&token=26668

真实/永久(重定向到)URL:https://lh3.googleusercontent.com/p/AF1QipO4Xz37yaVeLaLL8ndNQKR93b5qvClsSis11koi=s1600-w200-h200

如何获得此真实URL,而不是临时URL?

1 个答案:

答案 0 :(得分:0)

如果不使用hacky解决方案,我认为googleusercontent URL是不可检索的。

如果您需要的是图片的永久URL,建议您使用Google的Places web API来检索图片引用,并且可以随时使用该引用来获取图片。