我与Google Map战斗大约一个星期以将其添加到我的个人中。
我需要使用这张谷歌地图:
http://jquery-ui-map.googlecode.com/svn/trunk/demos/jquery-google-maps-clustering.html
就我在该链接中使用的代码而言,一切都很好,但是,一旦我向要创建集群的每个标记添加id,就无法正常工作。这是我的代码:
$('#map_canvas').gmap({'zoom': 2, 'disableDefaultUI':true}).bind('init', function(evt, map) {
$('#map_canvas').gmap('clear', 'markers');
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for ( var i = 0; i <2; i++ ) {
$(this).gmap('addMarker', {'id':'m_'+i, 'position': new google.maps.LatLng(southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random()) } ).click(function() {
$('#map_canvas').gmap('openInfoWindow', { content : 'ddd d!' }, this);
});
}
$(this).gmap('set', 'MarkerClusterer', new MarkerClusterer(map, $(this).gmap('get', 'markers')));
});
如您所见,我只是向正在使用的每个标记添加了一些ID。仅供参考,我需要添加ID,因为稍后我想在例如单击按钮时删除标记,并在单击后添加新标记。
谁能帮我以不松散群集属性的方式向标记添加ID?
最佳答案
标记的id
由jquery-ui-map内部使用,以在markers-array中标识标记。请注意,markers
最初是一个数组。可以使用自定义的id
,但是id应该是数字(array-keys只能是numeric)。
在您的情况下,它是一个字符串,它将把数组转换为对象。链接演示中使用的MarkerClusterer-version是2.0.6,它要求标记是数组,而不是对象,因为它是通过使用length-property(对象不存在)进行迭代的
解决方案:使用较新的版本,例如2.1.1或属性的其他名称(例如ID
)