MapView应该是Android中的View还是ViewGroup?

时间:2013-04-23 05:24:21

标签: android google-maps maps customization

在过去的一个月里,我使用地图API编写了一个应用程序,例如Google Map api和我国家的其他apis。它们封装好且易于使用。然后我想弄清楚api是如何构建的组织的。

在这个过程中,我找到了三个满足我需求的开源项目,osmand,mapsforge和osmdroid。随着我的研究的进行,我遇到了一些问题。

help for explanation

图片是Android上谷歌地图应用的截图,它显示了基本地图,一些标记和信息窗口。 众所周知,用户可以触摸标记和信息窗口,他们可以响应触摸手势。


这是第一个问题。

1.Are标记和信息窗口View / ViewGroup或图片元素只是在基本地图上绘制的?哪个选择更好?

  • 在osmand中,marker是图片元素,而信息窗口是自定义对话框。

osmand

  • 在mapsforge中,只有标记,标记是图片元素。

mapsforge

  • 在osmdroid中,它们都是图片元素。

osmdroid


标记和信息窗口的触摸事件。

  • 在osmand中,用户可以长时间触摸地图并显示信息窗口。用户也可以触摸窗口做更多事情。当长触摸事件激活时,其中一个图层将拦截事件并发送它通过那些抽象层直到满足可以消耗它的特定层。经过复杂的计算和处理后,信息窗口将出现在该点上.Marker可以放在后面,它不会响应触摸。

    < / LI>
  • mapsforge尚未实现标记的触摸事件。

  • 至于osmdroid,我没有深入研究它。

这三个标记和信息窗口的触摸事件句柄并没有像我之前使用的google map api和其他api一样完整。


这是我的想法?

如果它们是视图,MapView应该是ViewGroup,或者是容器(ViewGroup)和BaseMap(View)的组合。

  • 好处:也许处理触摸事件更容易。
  • 缺点:当地图移动时,应充分考虑MapView与它们之间的相对关系。

如果它们是图片元素,MapView可以只是View(或ViewGroup)。

  • 好处:上面谈到的相对关系不是问题
  • 缺点:应该很好地计算和处理触摸事件。

目前:

所以这是第二个问题:

2.我们应该如何选择Marker和MapView的基类组合?每种组合的好处和缺点是什么?

Discussion in mapsforge google group

如果您分享您的想法,我会很感激!

0 个答案:

没有答案