使用 Google 个地图地点库在地图上显示的标记不超过 20 个
Not more than 20 markers displaying on Maps using Google maps Places library
正在尝试使用 Google 个地点 API 获取一个城市内的所有餐馆。
即使返回了 100 条记录,地图上也只显示 20 个标记。
下面是我们创建标记的代码片段。如果我在这里遗漏了什么,请告诉我。您可以参考下面的 link 并在 'Santa Clara' 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
}
}
}
}
这一行完全没用:
textSearchrequest.pagetoken = next_page_token;
pagetoken
是 places-webservice 的 URL 参数,在 places-library
中没有意义
它不会将您带到下一页结果。
您总是得到相同的一组 (20) 个结果并一次又一次地绘制相同的标记组,直到您点击 QUERY_LIMIT。当你在请求10次后点击QUERY_LIMIT时,你抽取200,当你在请求12次后点击它时240,但无论你运行搜索多少次,你都不会得到超过20个不同的地方(标记)
尽管您绘制了 200 个(或更多)标记,但您只看到 20 个标记,因为它们位于相同的位置。
使用方法pagination.nextPage()访问下一组结果。
正在尝试使用 Google 个地点 API 获取一个城市内的所有餐馆。 即使返回了 100 条记录,地图上也只显示 20 个标记。 下面是我们创建标记的代码片段。如果我在这里遗漏了什么,请告诉我。您可以参考下面的 link 并在 'Santa Clara' 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
}
}
}
}
这一行完全没用:
textSearchrequest.pagetoken = next_page_token;
pagetoken
是 places-webservice 的 URL 参数,在 places-library
它不会将您带到下一页结果。
您总是得到相同的一组 (20) 个结果并一次又一次地绘制相同的标记组,直到您点击 QUERY_LIMIT。当你在请求10次后点击QUERY_LIMIT时,你抽取200,当你在请求12次后点击它时240,但无论你运行搜索多少次,你都不会得到超过20个不同的地方(标记)
尽管您绘制了 200 个(或更多)标记,但您只看到 20 个标记,因为它们位于相同的位置。
使用方法pagination.nextPage()访问下一组结果。