所以,我在我的网站上创建了一个谷歌地图,其中的功能可以动态地从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使用
我还有一个函数,其中输入到数据库的数据会自动输入到JSON文件中,但这可能无关紧要。
可悲的是,标记聚类不是一种选择。我尝试过使用setTimeout()和setInterval()函数,但由于我是新手,因此无法使其与我的地图一起正常工作。作为参考,我使用的是Google Map API的免费版本。
答案 0 :(得分:0)