Javascript MarkerClusterer没有错误,但什么也不做

Javascript MarkerClusterer没有错误,但什么也不做,javascript,google-maps,google-maps-markers,markerclusterer,Javascript,Google Maps,Google Maps Markers,Markerclusterer,页面加载、设置和显示标记、函数工作等。。。 一切似乎都很好,但MarkerClusterer不起作用。 我错过了什么? 也欢迎代码优化建议:) var映射; var标记=[]; 函数loadjsonmarkerstomap() { $.getJSON(“json.php”,函数(json1) { $.each(json1,函数(键,数据) { var latlng=新的google.maps.latlng(data.lat,data.lng); var infocontent=“ID:”+d

页面加载、设置和显示标记、函数工作等。。。 一切似乎都很好,但MarkerClusterer不起作用。 我错过了什么? 也欢迎代码优化建议:)


var映射;
var标记=[];
函数loadjsonmarkerstomap()
{
$.getJSON(“json.php”,函数(json1)
{
$.each(json1,函数(键,数据)
{
var latlng=新的google.maps.latlng(data.lat,data.lng);
var infocontent=“ID:”+data.ID+”
类型:“+data.Type+”
权重:“+data.Weight+”
”; var marker=new google.maps.marker( { 位置:latlng, 地图:地图, 标题:data.title }); var infowindow=new google.maps.infowindow({content:infocontent}); marker.addListener('click',function()) { 信息窗口。打开(地图、标记); }); 标记器。推(标记器); }); }); } 函数clearLocations() { 对于(var i=0;i
我认为它可能无法工作,因为标记是异步获取的。例如,当您运行
loadjsonmarkerstomap()
并立即初始化集群时,您的标记数组仍然为空

您必须确保在ajax调用成功后初始化集群

var markerCluster = new MarkerClusterer(map, markers, {imagePath: 'images/m'}); }

应该进入ajax调用的回调中。例如直接在
$之后。each(json1..loop

我相信它可能不起作用,因为标记是异步获取的。例如,当运行
loadjsonmarkerstomap()时
然后立即初始化集群。您的标记数组仍然为空。您必须确保在ajax调用成功后初始化集群。您的意思是将var-markerCluster置于initMap()函数之外吗?不,而是将
var-markerCluster=new-MarkerClusterer(map,markers,{imagePath:'images/m')放入}
在ajax调用的回调中。例如直接在
$之后。每个(json1..
循环。不幸的是,这没有什么区别:| m1.png、m2.png…图像位于名为images的文件夹中,但没有子文件夹m,这与任何事情有关吗?不,这应该是有意的。您可以发布小提琴或其他东西以获得进一步的帮助吗?没有控制台错误?您加载了多少标记?