【发布时间】:2013-12-10 12:43:24
【问题描述】:
我一直在另一个站点上使用类似的代码,但由于某种原因,这一次的集群方面不想工作。示例代码(精简以删除不相关的代码);
$.getJSON("./cgi-bin/links/ajax_mobi.cgi",{
action: 'load_results_map',
swlat: swlat, swlng: swlng, nelat: nelat, nelng: nelng,
faves: localStorage.getItem('faves'),
}, function(data) {
$.each( data.markers, function(i, marker) {
if (marker.is_error == "1") {
bootbox.alert("Sorry, no results matched");
} else {
jQuery('#map-inner').gmap('addMarker', {
'position': new google.maps.LatLng(marker.latitude, marker.longitude),
'bounds': false,
'icon': './img/marker.png',
'id' : marker.linkid
});
}
});
$('#map-inner').gmap('set', 'MarkerClusterer', new MarkerClusterer($('#map-inner').gmap('get', 'map'), $('#map-inner').gmap('get', 'markers')));
});
这很好用,并显示带有我所有标记的地图(只是没有聚集)。
但是,当涉及到这部分代码时:
$('#map-inner').gmap('set', 'MarkerClusterer', new MarkerClusterer($('#map-inner').gmap('get', 'map'), $('#map-inner').gmap('get', 'markers')));
这给了我一个错误:
TypeError: marker is undefined
http://www.site.com/mob_app/js/ui/markerclusterer.js
Line 1222
...当然根本不添加集群(只保留现有标记)
我已检查并再次检查代码是否正确,但似乎无法使其正常工作。
任何人都可以看到嘘声吗?我正在使用jQuery 2.0.3 和Bootstrap 3.0.2(我尝试对此进行评论,但没有任何区别)。我也在使用jquery-ui-map 3.0-rc(最新)和MarkerClustererPlus 2.0.16
【问题讨论】:
-
为我工作,你能提供一个演示或至少提供 JSON 吗?
-
JSON 没问题(它可以很好地添加标记)。问题似乎是某种与某事的冲突,但我一生都无法弄清楚它在做什么。我已将其简化为最基本的内容(仅与地图相关的内容,现在它只有一个硬编码的纬度/经度值,而不是 JSON)-view here。我认为如果我们可以让 infowindow 的东西正常工作,那么希望这也将有助于修复集群。谢谢!
-
一个不会冻结任何浏览器的演示会更有帮助。
-
啊抱歉,忘了说 - 您必须“取消”出现的 3 个弹出窗口。它是一个Phonegap 的东西(正确的PITA!)。取消它们应该让它加载得很好(我花了一段时间才解决这个问题)
-
cordova_plugins.json 文件?那不是数据的来源(这只是
Phonegap的一部分,Chrome Ripple抱怨如果你不包含它。实际数据来自硬编码位(common.js 中的第 41-61 行)
标签: google-maps-api-3 markerclusterer