在Android Google Maps API的v2中实现叠加的建议方法是什么?

gsy*_*sko 9 android google-maps google-maps-android-api-2

在原始版本的Android Google Maps API中,使用以下代码实现叠加层非常简单:

List<Overlay> mapOverlays = mapView.getOverlays();
AlarmOverlay alarmOverlay = new AlarmOverlay();
mapOverlays.add(alarmOverlay);
Run Code Online (Sandbox Code Playgroud)

...然后可以覆盖叠加draw()方法并绘制矢量图形,覆盖onTouchEvent()方法的叠加并提供自定义控件等.

我不知道如何在v2中构建类似的自定义控件,因为API参考中没有提到叠加的用例(并且标记和多边形是不够的).有没有人有建议的方式在v2中实现?

h22*_*h22 3

如果您需要将自己的图像放置在地球表面上,请使用 GroundOverlay。addGroundOverlay方法添加这样的图像。它需要GroundOverlayOptions来指定图像大小和位置(从长远来看),还有BitmapDescriptor,除其他选项外,还可以使用普通位作为图像源。因此,您可以创建一个新的位图,围绕该位图创建画布并在那里绘制。

如果您需要绘制非常复杂的东西,而多边形和标记还不够的话,这似乎是一个好方法。此外,在 Canvas 上绘制的旧代码可能可以重用。

我还没有做足够的测试,在我们更新位图后,地图多久会更新。在最坏的情况下,也许需要移除地面覆盖层添加新的地面覆盖层。位图本身可能仍然可以重用。

将附加组件放在顶部可能会出现问题,因为它必须支持缩放、移动,而且地图现在甚至是 3D。