【问题标题】:Google Places Photo Request returning undefinedGoogle Places 照片请求返回未定义
【发布时间】:2014-11-12 21:41:13
【问题描述】:

每当通过 Google Places 请求特定地点并放置标记时,我都会在地图上显示一个水平滚动条。

我的想法是让这个水平滚动条显示使用 Google 地点照片请求返回的每个地点的图片。但是,Google 建议使用的 .getUrl() 方法返回给我一个 'Uncaught TypeError: undefined is not a function';虽然我确实收到了一组对象,并且每个对象都有一组照片。

这是我的代码的一部分:

for (var i = 0, place; place = venueData[i]; i++) {
        if (place.photos) {
            var photo = place.photos[0].getUrl({ 'maxWidth': 100, 'maxHeight': 100 });
            $('.venues-display').append('<li><div class = venue-picture><img src='+photo+'></div></li>')
        }
        else {
          $('.venues-display').append('<li><div class = venue-picture><img src='+ place.icon + '></div></li>') 
        } 

我得到的错误指向 getUrl() 的行。

venueData 变量 - 是从 Google Places 文本搜索返回的对象数组。

'.venues-display' - 是我的滚动条的类名。

我是一个新手..并且变得绝望,因为我不明白我做错了什么。

请见谅

【问题讨论】:

  • 您的代码在我看来没问题。您可以尝试检查 place.photo 对象,例如。 alert(place.photo[0].getUrl) 以确保它返回一个对象。如果没有,请尝试 alert(place.photo[0])。
  • 使用if (place.photos.length) 而不是if (place.photos)
  • 谢谢大家的回复。我刚刚在控制台中打印出照片对象时发现它们没有 getUrl() 方法..可能是因为我使用 Rails 请求场地,而不是谷歌的 JS 搜索方法。我玩过 Places 库,包括使用 google 的 JS 方法进行地方搜索,这样照片对象确实有一个 getUrl 方法并且它可以工作......再次感谢

标签: javascript google-maps google-places-api google-photos


【解决方案1】:

.getUrl() 方法仅适用于 Google Places Library(换句话说,如果您调用 .PlaceServices),您不需要使用您的 API 密钥

new google.maps.places.PlacesService(map)

否则,你需要使用这段代码来获取照片:

https://maps.googleapis.com/maps/api/place/photo?parameters

至少我通过阅读 Google 文档并出于相同原因使用不同的代码片段是这样理解的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 2016-10-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2012-03-20
    • 2013-11-12
    • 2018-08-09
    相关资源
    最近更新 更多