javascript - 将 id 添加到标记后, map 不会对位置进行聚类

标签 javascript jquery google-maps google-maps-api-3 jquery-plugins

我花了大约一周的时间才用谷歌地图将其添加到我的项目中。 我需要使用这个谷歌地图: 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 在内部使用来识别标记 -array 中的标记。请注意,markers最初是一个数组。可以使用自定义 id ,但 id 应该是数字(array-keys 只能是数字)。

在您的情况下,它是一个字符串,它将数组转换为对象。链接演示中使用的 MarkerClusterer 版本是 2.0.6,它要求标记是一个数组,而不是一个对象,因为它通过使用长度属性(对象不存在)进行迭代

解决方案:使用较新的版本,例如2.1.1 或属性的其他名称(例如 ID )

关于javascript - 将 id 添加到标记后, map 不会对位置进行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22674743/

相关文章:

javascript - 将 html 表格转换为 word 文档或可编辑的 pdf

javascript - 使用 "Run as"运行 Internet Explorer 无法打开新的 PDF 窗口

javascript - 可在彩色背景上放置

除非您触摸 map View ,否则不会加载 Android MapView

javascript - 如何生成具有不同颜色行的 React 表?

javascript - Node.js 强大的文件上传在服务器上运行缓慢

javascript - jquery设置重复按钮注册点击事件

javascript - 如何防止使用 jQuery 或 Javascript 重复提交?

android - 相对于设备的移动方向旋转谷歌地图(android)

excel - 在 Excel 上以更少的 API 调用使用 Google Maps Distance Matrix API