我的目标是在 Android Google Maps API v2地图上使用多个带有文本的标记。信息窗口方法 (showInfoWindow()) 不适合,因为一次只显示一个信息窗口。例如,我想要这样的东西:
如您所见,每个标记都有自己的数据(本例中的数字)一直显示。如何使用 Android Google Maps API v2实现这一目标?
我的目标是在 Android Google Maps API v2地图上使用多个带有文本的标记。信息窗口方法 (showInfoWindow()) 不适合,因为一次只显示一个信息窗口。例如,我想要这样的东西:
如您所见,每个标记都有自己的数据(本例中的数字)一直显示。如何使用 Android Google Maps API v2实现这一目标?
为此,您必须将每个标记的图标自定义为您所需要的。这是链接:https ://developers.google.com/maps/documentation/android/marker#customize_a_marker
然后你可以放一些PNG资源(一个蓝色,一个黄色和一个红色),并在运行时得到正确的Bitmap,通过代码将文本写在位图上,然后用fromBitmap (Bitmap image)
方法设置为自定义标记。
试试这个
LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.marker_dialog, null, false);
tv.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight());
tv.setDrawingCacheEnabled(true);
tv.buildDrawingCache();
Bitmap bm = tv.getDrawingCache();
LatLng latLng = new LatLng(latitudemy, longitudemy);
BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap(bm);
BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);
map.addMarker(new MarkerOptions().position(new LatLng(latitudemy, longitudemy)).title("origin").snippet("Srivastava").icon(icon));
// Showing the current location in Google Map
map.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("destination").snippet("Srivastava").icon(icon));
您可能还想尝试开箱即用的集群解决方案:Android Maps Extensions
作为更新:
android maps utils 现在有一个 Marker Clustering Utility
https://developers.google.com/maps/documentation/android/utility/marker-clustering
https://github.com/googlemaps/android-maps-utils