Google地图仅显示来自JSON文件的有限数量(21)的标记

时间:2017-08-01 14:30:11

标签: javascript json google-maps google-maps-api-3

所以,我在我的网站上创建了一个谷歌地图,其中的功能可以动态地从JSON文件中检索数据,然后根据收到的数据在地图上创建标记。

在关于Google Maps: Working With JSON Objects的Google官方教程之后,一切正常,除了有一个小问题:地图最多只显示约21个标记,而至少有1600个条目。生成的标记总是相同的,但它们具有正确的数据(标记位于正确的位置,并且信息标题为infowindow)以下是相关代码的片段:

for (var x in dataForm4) {
            var data = dataForm4[x];
            var latLng = new google.maps.LatLng(data.lat, data.lng);
            addMarker (map, data.address, latLng);
     };
  }      //This is where the "initiliaze map" function ends

var infoWindow;
  function addMarker (map, address, latLng){
    var marker = new google.maps.Marker({
      position: latLng,
      map: map,
    });

  google.maps.event.addListener(marker, 'click', function() {
    if (typeof infoWindow != 'undefined') infoWindow.close();
    infoWindow = new google.maps.InfoWindow ({
    content: address
  });

    infoWindow.open(map, marker);
  });
}

关于代码的说明:

  • dataForm4是JSON文件的字符串化变量:

    <script>
      var dataForm4 = <%- JSON.stringify(form2) %>;
    </script>
    
  • 地址是位于JSON文件内的每个地址的“标题”,用于在infowindow使用

  • map变量在initialize函数
  • 中定义

我还有一个函数,其中输入到数据库的数据会自动输入到JSON文件中,但这可能无关紧要。

可悲的是,标记聚类不是一种选择。我尝试过使用setTimeout()和setInterval()函数,但由于我是新手,因此无法使其与我的地图一起正常工作。作为参考,我使用的是Google Map API的免费版本。

1 个答案:

答案 0 :(得分:0)

哇,在比较数据库之后,显然有人手动输入了一些数据,&#34; lat&#34;文件中的变量输入为&#34; lat&#34;。由于最终的空间,谷歌无法绘制地址的纬度。我们之前修复了此问题,但负责人忘记更改手动输入的数据。所以错误的变量就是错误的来源。