使用 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()访问下一组结果。