Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android Google Maps API的v2中实现覆盖的建议方法是什么?_Android_Google Maps_Google Maps Android Api 2 - Fatal编程技术网

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

在Android Google Maps API的v2中实现覆盖的建议方法是什么?,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,在Android Google Maps API的原始版本中,使用以下代码很容易实现覆盖: List<Overlay> mapOverlays = mapView.getOverlays(); AlarmOverlay alarmOverlay = new AlarmOverlay(); mapOverlays.add(alarmOverlay); List mapOverlays=mapView.getOverlays(); AlarmOverlay AlarmOverlay=新

在Android Google Maps API的原始版本中,使用以下代码很容易实现覆盖:

List<Overlay> mapOverlays = mapView.getOverlays();
AlarmOverlay alarmOverlay = new AlarmOverlay();
mapOverlays.add(alarmOverlay);
List mapOverlays=mapView.getOverlays();
AlarmOverlay AlarmOverlay=新建AlarmOverlay();
添加(报警覆盖);
…然后可以重写overlays draw()方法并绘制矢量图形,重写overlays onTouchEvent()方法并提供自定义控件等


我不知道如何在v2中构建类似的自定义控件,因为API参考中没有提到覆盖的用例(而且标记和多边形还不够)。有人建议在v2中实现吗?

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

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

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


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

AFAIK,您现在只需在地图上分层(例如,与地图相同的
框架布局中的其他
视图
)并绘制它,使用
Projection
可以从
GoogleMap
上的
getProjection()
获得。谢谢!我从一篇文章中得到了这样的印象,但我想在走得太远之前确定一下。谢谢你的确认。(顺便说一句,管理这样一个覆盖可能是一个很好的话题;-))是的,特别是,弄清楚如何在不干扰触摸事件的情况下拥有这样一个覆盖可能是。。。不愉快的就我个人而言,内置的标记/多段线/多边形的东西应该能满足我的需要,还有一些我还没有提到的地砖的东西,所以希望很少有人会对完全覆盖的等价物大惊小怪。我会将它添加到我的待办事项列表中,但可能需要一段时间才能开始。我很欣赏这个有限的用例。不幸的是,对于我的应用程序,我必须走这条路(出于各种原因——矢量绘制、更复杂的事件等等)。到目前为止,我遇到了这样一个问题:OnCamerachenglistener的响应速度确实不够快,无法保持我的图层同步移动——非常混乱!谢谢你的评论。我认为你是对的。我还没有时间确认您建议的实现,但我会尝试。无论如何,您在将视图覆盖到地图顶部时遇到的问题是完全正确的。它工作得相当好,但性能不够好,并且不适合摄影机动画(例如缩放时)。触摸事件(如在移动中)可以通过覆盖持有地图的视图组中的onInterceptTouchEvent
来处理,但不考虑投掷。非常感谢你的建议。