【发布时间】:2015-12-09 10:39:58
【问题描述】:
我已经构建了一个音乐应用程序,现在我正在尝试构建一个更像 Shazam 或 Instagram 的映射功能,如下所示:
最初,我将在几个点上放置一个通用标记,而不实际显示该位置的所有活动。然后点击该标记,地图将放大,其他更具体的标记将显示,依此类推..
是否有可用的教程,我可以按照该教程在 Android 中实现此效果?
【问题讨论】:
标签: android google-maps google-maps-api-3
我已经构建了一个音乐应用程序,现在我正在尝试构建一个更像 Shazam 或 Instagram 的映射功能,如下所示:
最初,我将在几个点上放置一个通用标记,而不实际显示该位置的所有活动。然后点击该标记,地图将放大,其他更具体的标记将显示,依此类推..
是否有可用的教程,我可以按照该教程在 Android 中实现此效果?
【问题讨论】:
标签: android google-maps google-maps-api-3
我刚刚发现 Google 有一个提供标记聚类的实用程序库。文档可以在这里找到https://developers.google.com/maps/documentation/android-api/utility/marker-clustering
【讨论】:
您可以使用此函数创建一个添加自定义标记的方法:
private void drawCustomMarker(LatLng point) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(point);
markerOptions.title("SMS");
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.sms));
mMap.addMarker(markerOptions);
}
您可以将 LatLng 对象传递到要放置标记的位置。我已经在地图点击监听器中使用了它:
mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng newlatLng) {
drawCustomMarker(newlatLng);
}
});
希望对你有所帮助..!
【讨论】: