在Google Maps v2 for Android上动态添加标记

时间:2013-08-26 17:57:28

标签: android google-maps google-maps-android-api-2

根据显示的地图区域动态添加标记有哪些可能性?

我有很多标记或者说我的标记需要很多渲染性能,因为它们是自定义的。我现在实现了它,当“camerachange”被触发时,只绘制了40个标记。所以在这个时候,当相机位置改变时,我总是渲染40个新标记。

我读过关于runnable和handler的更多选择?有人知道哪种可能性最好,所以ui-thread没有被阻止?

2 个答案:

答案 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

如果你想自己编码,我可以建议这些方法:

答案 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);
            }
        });