使用Google地图位置库在地图上显示的标记不超过20个

时间:2015-10-09 00:23:43

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

尝试使用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
        }
       }
     }
  }

1 个答案:

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