我与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

09-25 17:04
查看更多