尝试使用Google Places API获取城市内的所有餐馆。 即使返回了100条记录,地图上也只显示20个标记。 下面是我们创建标记的代码段。请告诉我,如果我在这里遗漏了什么。您可以参考以下链接,并在“圣克拉拉”中的餐馆输入信息。 jsfiddle.net/r8g42046
//用于根据地点位置创建标记的功能。
function createMarker(place){
var place = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(place.name);
infoWindow.open(map, this);
});
}
// Callback function based on results fetched from Places library based on type : restaurant.
function callback(results, status, next_page_token) {
if (results != null){
resultlist.push(results);
}
if (next_page_token != undefined){
textSearchrequest.pagetoken = next_page_token;
service.textSearch(textSearchrequest,callback);
}
else{
findLocation(resultlist[0][0].place_id);
for(var page = 0;page < resultlist.length;page++)
{
for (var i = 0; i < resultlist[page].length; i++) {
var place = resultlist[page][i];
console.log(place.name); // Displays 100 restaurant names
createMarker(place); //Call create marker function
}
}
}
}
答案 0 :(得分:1)
这条线完全没用:
textSearchrequest.pagetoken = next_page_token;
pagetoken
是places-webservice的URL参数,在places-library中没有任何意义
它不会引导您进入下一页的结果。
您总是得到相同的(20)结果集并反复绘制相同的标记集,直到您点击QUERY_LIMIT。当您在10个请求之后点击QUERY_LIMIT时,在12个请求240之后点击它时会绘制200,但无论您多久运行一次搜索,您都不会获得超过20个不同的位置(标记)
虽然你绘制了200个(或更多)标记,但只能看到20个标记,因为它们位于相同的位置。
使用方法pagination.nextPage()访问下一组结果。