【发布时间】: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