问题标签 [markerclusterer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1018 浏览

javascript - 有没有办法在谷歌地图中模拟事件?

我在谷歌地图中的所有标记中添加了一个点击监听器。我已将所有这些标记添加到 MarkerCluster。我已经向这个 MarkerCluster 添加了一个点击监听器。当我单击一个集群时,默认情况下它会放大到该区域。而不是那种行为,我如何模拟我同时点击集群内的所有标记?

如何在不发生的情况下模拟单击事件?

0 投票
1 回答
1586 浏览

javascript - 使用 Marker Clusterer 时移动的标记消失

我有一个具有大量标记的应用程序(因此希望使用 Marker Clusterer),但我希望允许用户四处移动标记。不幸的是,标记在移动后会消失,并且您缩小/放大。确切地说,这些是重现问题的步骤:

  1. 创建所有标记/将它们添加到标记聚类器对象。
  2. 放大以查看单个标记。
  3. 将标记移动到新位置。
  4. 缩小直到聚类开始(并将移动的标记与至少一个其他标记分组)
  5. 放大以查看已移动的标记。

我希望标记在放大后仍然存在,但事实并非如此。在第 3 步之后,标记仍然可见 - 它仅在缩小然后重新缩小后消失。聚类仍然正确计算标记(缩小时它出现在群集总数中),但标记不再出现。

我尝试使用最新版本的 MarkerClusterer 和 MarkerClustererPlus,我正在处理地图 API 的 v3。此外,我有一个事件侦听器,它在标记发生后调用repaint集群dragend(认为 arepaint会导致标记正确放置)。

[编辑] 可以在此处找到演示问题的最小示例(基于 Marker Clusterer 示例)。与此示例相比,唯一更改的是包含 javascript 库(制作绝对链接)和添加draggable: true到标记选项的行。按照上述 5 个步骤应该可以重现该问题。

0 投票
4 回答
8440 浏览

javascript - 谷歌地图:在markerclusterer上方渲染标记

我有一组标记聚集在我的地图上。另一组标记单独显示,我碰巧需要将这些标记显示在群集上方。我尝试在集群选项对象中设置 zIndex,低于第二组标记,但无济于事。知道该怎么做吗?

0 投票
3 回答
1825 浏览

google-maps-api-3 - 动画后标记消失

我使用带有标记聚类器 v3 的谷歌地图 v3 来显示 1000 个标记。我还有一个侧面板,列出了每个标记的标题。当用户将鼠标悬停在面板中的标题上时,我会为相应的标记设置动画,并在鼠标悬停时停止动画。

当标记不在集群中时,这可以正常工作。当标记在集群中时,我遇到了问题。

如果标记在群集中,我首先将标记的地图对象从 null(之前由 markerClusterer 设置,以便在将标记放入群集后隐藏标记)更改为我的地图对象,然后为标记设置动画。同样,这有效。我遇到问题是在mouseout上。

在 mouseout 上,我将标记动画设置为 null,然后将标记的地图对象设置为 null。这符合您的预期(隐藏标记),但我无法让标记在任何后续悬停事件中再次显示。标记仍然存在于适当的集群对象中,我可以调用 setMap() 来设置标记的地图属性,但标记仍然不会出现在地图上。以下是相关代码:

如果我注释掉两个 setAnimation() 调用,那么代码将起作用,并且可以显示标记,然后按预期隐藏(只是没有动画)。此外,当我使用控制台时,我可以将标记从集群中显示出来,然后我可以对其进行动画处理,然后我可以对其进行取消动画处理,然后我可以一遍又一遍地再次隐藏它。但是,如果我在取消标记动画之前调用 setMap(null),那么我遇到了我的错误。

因此,只有在调用 setMap(null) 之前动画没有停止时,才会出现问题。我尝试设置一个计时器,让动画在调用 setMap 之前停止几百毫秒,这有时会起作用,但有时它会触发其他甚至更糟糕的行为。

任何解决此问题的帮助将不胜感激(并热切接受)!

0 投票
1 回答
1473 浏览

google-maps-api-3 - 是否有任何方法可以在少于定义的标记计数时禁用标记聚类器?

我想要我的标记聚类器;不要将少于 4 个或其他东西的标记聚集在一起。即使是 2 个标记,它也会对所有标记进行聚类。

有没有可能的方法来设置它?

0 投票
1 回答
1051 浏览

api - 在 Javascript 中动态加载的 Google Map API:单击标记弹出窗口

所以我有一张我正在处理的地图,像这样动态加载:

我想要它做的是优雅地加载带有标题和地址的标记弹出窗口......这是来自php的这两个值:

目前它会这样做,但在警报中......

那么如何设置它以使其出现在标记上方的弹出窗口中?

感谢您的帮助!

0 投票
1 回答
4654 浏览

javascript - 结合 Google Maps MarkerClusterer v3 和 Viewport Marker Management

我已经成功地设置了 MarkerClusterer v3 和视口标记管理(执行 ajax 调用以仅收集视口可见的标记并在地图“空闲”时渲染这些标记)。

但是,当我将它们组合在一起时,它们似乎只在页面第一次加载而不是之后一起工作。

缩放或平移时,保留初始集群,并且整个地图的标记呈现为非集群状态,但保留先前集群的标记。

当您放大/缩小时,原始的聚集标记仍然可以正常运行,但是在更改视口边界时提供的新标记不会添加到它们或聚集在一起。

下面的代码:

0 投票
1 回答
1870 浏览

java - 集群标记 OpenStreetMap java

目前在一个项目中,我使用 GoogleMaps 和基于 PhotSpot http://code.google.com/p/android-playground-erdao/wiki/PhotSpot的 ClusterMarker 。
我尝试将其转换为使用 OpenStreetMap 和 mapsforge 库(http://code.google.com/p/mapsforge/),将引用的库从 googlemaps 替换为 mapsforge。

我需要在基于 ClusterMarker 的自定义类中覆盖和实现 mapsforge 库中的方法(http://code.google.com/p/android-playground-erdao/source/browse/trunk/SampleClusterMap/src/com/erdao/ android/mapviewutil/markerclusterer/ClusterMarker.java)来自 photspot ,在这里我碰壁了。

你们中的任何人是否尝试过在 java 中的 openstreetmap 上创建集群标记覆盖,或者可能知道任何可以提供帮助的开源库?

0 投票
3 回答
4069 浏览

google-maps-api-3 - 更改 Google Maps v3 MarkerClusterPlus 标题

我正在尝试动态设置群集图标的群集标题、翻转文本。我希望在翻转文本中使用集群计数/总数。

通过console.log我可以看到title已更改为var txt. 它也适用于alert( txt ). 集群的默认标题是""并且似乎没有得到更新,并且保持在默认值。

目前我正在将标题设置为google.maps.event.addListener( markerClusterer, 'mouseover', function( cluster ) {}).

我在想我的代码会继续执行,这可能是我看不到变化但我无法缩小范围的原因。

任何帮助将不胜感激。谢谢!

编辑:1

我有一个基于Rick建议的解决方案的解决方案。

我已经修改了 onAdd 方法。

编辑:2 - 最终解决方案

按照Rick的建议,将方法更改show与以前的方法进行了比较。在 MarkerClustererPlus 的原始源文件之外的文件中进行了更改。onAdd

0 投票
1 回答
365 浏览

javascript - Array 上的 Javascript 长度结果不同

我目前正在使用 Google Maps API v3、jQuery 和 MarkerClusterer。

我注意到“长度”结果存在一个奇怪的问题。因此,我将向您展示我的注释代码:

文件 data.json 包含大约 1800 个对象。

总而言之,这段代码至少可以与一个警报完美配合...如果删除两个警报,则此代码不起作用。

谢谢你的帮助,问候