如何从地图中删除所有群集图标(群集标记)?尝试过如下建议:
......但它没有奏效.
你能帮我解决这个问题吗?
先感谢您!
更新时间(2010-11-23)
标记存储在数组中
var markersClust = Array();
Run Code Online (Sandbox Code Playgroud)
...并添加(与php结合):
markersClust.push(marker_<?php echo $team["Team"]["id"]; ?>);
var markerClusterer = new MarkerClusterer(MyMap.map, markersClust, clusterOptions);
Run Code Online (Sandbox Code Playgroud)
它工作正常.
但是,我无法将它们从地图中移除,它驱使我......
试图删除标记(和我做)
for ( var i=0; i < markersClust.length; i++) {
markersClust[i].setMap(null);
}
markersClust = [];
Run Code Online (Sandbox Code Playgroud)
但群集图标在地图上是静止的.
我也尝试过这样的事情:
markerClusterer.clearMarkers();
Run Code Online (Sandbox Code Playgroud)
并喜欢
MyMap.preventDefault();
MyMap.stopPropagation();
MyMap.clearMarkers();
Run Code Online (Sandbox Code Playgroud)
但是,在地图上,群集的图标仍然存在.
我还需要做些什么来从我的地图中删除这些群集图标?请帮忙...
我正在使用Google MarkerClusterer.每当地图超过缩放级别15时,我想要去除所有标记.
maxZoom配置选项中有一个设置,但文档没有说清楚它应该做什么.
我尝试按如下方式设置它,但无论我将地图设置为的缩放级别如何,地图都会保持聚类:
new_mc = new MarkerClusterer(map, newco_markers, {
maxZoom: 9
});
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我误解了该选项应该做什么,还是有另一种方法来解决这个问题?
我想在Google Map上显示大量标记(50k +).事实证明,Android Maps Util Library https://github.com/googlemaps/android-maps-utils似乎是群集标记时的首选.
我想知道是否存在任何最佳实践,以便在显示如此大量的标记时提高地图用户体验的性能.
例
例如,我使用群集管理器向群集管理器添加大约20.000个标记,从而在缩放和平移地图时导致不太平滑的地图交互体验.
我用过的:
GridBasedAlgorithm<MyClusterItem> gridAlgorithm = new GridBasedAlgorithm<MyClusterItem>();
mClusterManager.setAlgorithm(new PreCachingAlgorithmDecorator<MyClusterItem>(gridAlgorithm));
Run Code Online (Sandbox Code Playgroud)
我的策略:
1)在相机更改事件中从群集器中删除所有标记,然后仅添加视图边界内的那些标记.在高缩放级别上工作得很好,当缩放级别降低时,有许多标记要移除和添加,从而增加了整个聚类过程的开销
2)首先添加所有标记.
有没有方法可以更改群集项的背景颜色?(显示标记计数的那个,如100 +,200 + ......).我试着查看ClusterManager的源代码,但找不到任何改变颜色的选项,但也许有人知道如何做到这一点.我基本上想要"物化"那些颜色.
我是反应原生的新手,我想在我的应用程序中集成地图,我正在使用"react-native-maps"库, 我想使用https://github.com/airbnb/react-native-maps聚类,但我无法找到与此相关的适当文件.请帮助我找到如何将地图与群集集成的文档,并告诉哪个库最适合实现两个平台,iOS和Android的群集.
我有很多针脚要放在我的地图上,所以我认为将这些注释聚类是个好主意.我不确定如何在iPhone上实现这一点,我能够使用谷歌地图和一些JavaScript示例来解决问题.但iPhone使用其mkmapview,我不知道如何在那里聚集注释.
您知道并且很好的任何想法或框架?谢谢.
我的应用程序中存在巨大的内存问题.我正在使用谷歌地图api v2 ClusterManager和自定义标记.我markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap));根据其类别通过调用为每个标记提供图像.问题是:在几次屏幕旋转后,我的应用程序因OOM错误而崩溃:
05-14 11:04:12.692 14020-30201/rokask.rideabike E/art? Throwing OutOfMemoryError "Failed to allocate a 4194316 byte allocation with 1627608 free bytes and 1589KB until OOM"
05-14 11:04:12.722 14020-30201/rokask.rideabike E/AndroidRuntime? FATAL EXCEPTION: GLThread 19179
Process: rokask.rideabike, PID: 14020
java.lang.OutOfMemoryError: Failed to allocate a 4194316 byte allocation with 1627608 free bytes and 1589KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:939)
at android.graphics.Bitmap.createBitmap(Bitmap.java:912)
at android.graphics.Bitmap.createBitmap(Bitmap.java:879)
at com.google.maps.api.android.lib6.gmm6.n.c.i.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.n.c.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.n.c.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.n.c.l.b(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) android bitmap out-of-memory markerclusterer google-maps-android-api-2
目前我正在使用Google Maps v.3 API在地图上绘制标记.我总共有大约500个标记.
出于显示目的,我在浏览器的客户端使用此工具使用markerCluster和组标记.
但是,我计划扩大位置数量,并假设它可以快速增长到100K甚至200K.
我做了一些压力测试,并意识到当前的解决方案基本上杀死了浏览器和大约10-20K标记.
所以我的问题是什么是绘制许多标记的最佳方法(不是必要的谷歌地图)?
我读过类似问题的帖子,例如:
基本上人们建议使用一些clusterer用于显示目的,我已经使用过.
或者使用融合表来检索数据,这不是一个选项,因为数据必须保留在我的服务器上.此外,我假设显示功能受到融合表的限制.
我正在考虑实现以下场景:
在每个页面上缩放/加载 - 发送带有显示视图边界的ajax请求,在所有边上添加约30%并检索仅在此地理区域中的标记.如果用户缩小,则会添加30%,以便我可以快速显示其他标记,然后在背景中进一步后退(其他地方)
当标记的数量超过50时 - 我计划将聚类应用于显示目的.但由于javascript中的markerCluster非常慢,即不是markerCluster而是谷歌本身,因为它仍然应用所有标记的位置,我打算通过在大约15*15网格中分割显示的地图的边界来在服务器端进行聚类然后将标记放入特定的单元格中,然后基本上将内部标记的数量发送给客户端集群(例如,用于热图).然后将群集显示为标记.
你能不能给一些有相似之处的人提供一些见解.一般来说它是否有意义.或者这是一个愚蠢的方法,因为ajax请求将在每个地图缩放和移位时发送到服务器,并基本上使冗余请求超载服务器?
我想要实现的是在大型标记数据集上的良好用户体验(在不到2秒的时间内加载).
我必须从Google Maps Android v2 API在GoogleMap上放置不同的标记.问题是多个标记设置为相同的位置(lat/lng),因此用户只能看到"最新"标记.
是否有可能(在最好的情况下:库)从同一区域聚类不同的标记(相对于缩放级别)?
我已经阅读过有关MarkerClusterer的内容,但这是专为JavaScript API设计的.
我正在使用GoogleMaps群集.我有4种不同类型的标记,每种标记从一个抽象类扩展,每个标记都有自己的图标,并在MarkerOptions字段中定义.我将ClusterManager用于此抽象类.我刚刚使用的时候
//marker is instance of one of extended classes and has abstract class type
clusterManager.addItem(marker);
Run Code Online (Sandbox Code Playgroud)
集群后,它将图标设置为默认值.我怎么解决这个问题?我试图使用这样的东西:
//marker is abstract marker, getMarker returns the MarkerOptions of this marker
clusterManager.getMarkerCollection().addMarker(marker.getMarker());
Run Code Online (Sandbox Code Playgroud)
但它也不起作用,标记在地图上打印了所需的图标,但没有聚类.
我应该在我的抽象类中创建一些创建方法,还是有一些方法可以从DefaultClusterRenderer扩展?我没有使用谷歌或学习谷歌地图lib找到一些有关它的信息.
谢谢你的帮助!
markerclusterer ×10
android ×5
google-maps ×4
maps ×2
annotations ×1
bitmap ×1
iphone ×1
markers ×1
mkmapview ×1
react-native ×1