如何让 MarkerClusterer 在这里工作?
How do I get MarkerClusterer to work here?
我正在尝试将 MarkerClusterer 库实施到我的地图中,但到目前为止没有成功。以下是我到目前为止的代码,下面是我在 JavaScript 控制台中收到的错误:
在初始化函数中除了创建地图外,还展示了如何创建标记:
var a = [];
var t = {
name:"name1",
lat:parseFloat(123),
lng:parseFloat(-123),
address:"address1",
link:"link1",
site:""
}
a[0] = t;
var t = {
name:"name2",
lat:parseFloat(234),
lng:parseFloat(-234),
address:"address2",
link:"link2",
site:""
}
a[1] = t;
for (var i = 0; i < a.length; i++) {
var latlng = new google.maps.LatLng(a[i].lat,a[i].lng);
map.addMarker(createMarker(a[i].name,latlng,a[i].address,a[i].link,a[i].site));
};
在初始化函数之外:
function createMarker(name,latlng,address,link,site) {
var marker = new google.maps.Marker({position: latlng});
a.push(marker);
google.maps.event.addListener(marker, "click", function() {
if (infowindow) infowindow.close();
infowindow = new google.maps.InfoWindow({content:"<div class='buildingInfo'>" + name + "<br>" + "<a href='" + link + "'>" + address +"</a>" + "</div>"});
infowindow.open(map, marker);
});
return marker;
所有的标记都创建得很好,我只是不确定我是否正确地实现了 MarkerClusterer 代码。
我得到的错误:
Uncaught TypeError: Cannot read property 'push' of undefined
所以我的大问题是:为什么 undefined?我把 var a;在所有函数之外使其成为全局函数。
知道了。
因为 a 已经在其他地方使用了,所以我实际上要做的就是向代码添加一个新数组 markers[] 并将其推送。
我正在尝试将 MarkerClusterer 库实施到我的地图中,但到目前为止没有成功。以下是我到目前为止的代码,下面是我在 JavaScript 控制台中收到的错误:
在初始化函数中除了创建地图外,还展示了如何创建标记:
var a = [];
var t = {
name:"name1",
lat:parseFloat(123),
lng:parseFloat(-123),
address:"address1",
link:"link1",
site:""
}
a[0] = t;
var t = {
name:"name2",
lat:parseFloat(234),
lng:parseFloat(-234),
address:"address2",
link:"link2",
site:""
}
a[1] = t;
for (var i = 0; i < a.length; i++) {
var latlng = new google.maps.LatLng(a[i].lat,a[i].lng);
map.addMarker(createMarker(a[i].name,latlng,a[i].address,a[i].link,a[i].site));
};
在初始化函数之外:
function createMarker(name,latlng,address,link,site) {
var marker = new google.maps.Marker({position: latlng});
a.push(marker);
google.maps.event.addListener(marker, "click", function() {
if (infowindow) infowindow.close();
infowindow = new google.maps.InfoWindow({content:"<div class='buildingInfo'>" + name + "<br>" + "<a href='" + link + "'>" + address +"</a>" + "</div>"});
infowindow.open(map, marker);
});
return marker;
所有的标记都创建得很好,我只是不确定我是否正确地实现了 MarkerClusterer 代码。
我得到的错误:
Uncaught TypeError: Cannot read property 'push' of undefined
所以我的大问题是:为什么 undefined?我把 var a;在所有函数之外使其成为全局函数。
知道了。
因为 a 已经在其他地方使用了,所以我实际上要做的就是向代码添加一个新数组 markers[] 并将其推送。