根据显示的地图区域动态添加标记有哪些可能性?
我有很多标记或者说我的标记需要很多渲染性能,因为它们是自定义的。我现在实现了它,当“camerachange”被触发时,只绘制了40个标记。所以在这个时候,当相机位置改变时,我总是渲染40个新标记。
我读过关于runnable和handler的更多选择?有人知道哪种可能性最好,所以ui-thread没有被阻止?
答案 0 :(得分:13)
我建议使用适用于Google Maps Android API v2的群集库之一。
除了群集之外,Android Maps Extensions可以为您做很多工作。 API与官方Google库非常相似 如果您根本不想使用群集,您仍然可以通过以下方式实现目标:
map.setClustering(new ClusteringSettings()
.enabled(false)
.addMarkersDynamically(true)); // I didn't change the API to match your title ;)
Clusterkraf主要关注动画群集。
截至撰写本文时,Android Maps Utils没有将聚类合并到主分支中,但您可以看到clustering branch。
如果你想自己编码,我可以建议这些方法:
Marker
中添加VisibleRegion
(Android Maps Extensions在使用上述代码时的功能相同),例如我的演示项目示例:AddOnlyVisibleMarkersExampleActivity.java Marker
添加Handler
,例如:AddMarkersInBackgroundExampleActivity.java 答案 1 :(得分:-1)
googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
MarkerOptions marker = new MarkerOptions().position(
latLng)
.title("Hello Maps ");
marker.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
googleMap.addMarker(marker);
}
});