2

我已经编写了一个在 Android 中使用 GoogleMaps Api v1 的应用程序。这个应用程序使用了几个Overlays(或ItemizedOverlays),它们自主处理一堆事情(即延迟加载标记,因为我有很多它们并且一次添加它们会强制应用程序关闭)。我还将它们用作用户的界面:他可以决定他想看到哪些叠加层(或从他的角度来看哪种标记)。我相应地添加或删除这些叠加层。现在我想切换到新的 maps-v2-api。文档没有提到Overlays,而且似乎不能扩展Markers,因为它们是final的。

我是否被迫模仿以前的地图行为,以便能够添加和删除自己处理标记的叠加层?有谁知道为什么 Google 删除了这个有用的工具,并迫使任何开发人员完全重写 GoogleMaps 相关代码的原因?我还想知道将Marker类设为final的原因,从而阻止任何人添加与之相关的内容?(我看到的解决方案存储了一个全局 HashMap,其中标记作为键,它们需要的信息作为值,在我看来,考虑到标记可能具有与它们相关的不同模型,这非常难看)。

4

1 回答 1

4

我是否被迫模仿以前的地图行为,以便能够添加和删除自己处理标记的叠加层?

是的。

有谁知道谷歌删除这个有用的工具的原因,并迫使任何开发人员完全重写谷歌地图相关代码?

谷歌工程师可能知道原因。

据我所知,对于简单的场景,新方法需要的代码更少。Maps V1 需要叠加层,而叠加层对于许多应用程序来说太过分了。

我还想知道将 Marker 类设为 final 的原因,从而阻止任何人添加与之相关的内容?

因为Marker它用于 IPC,并没有真正保留在您的流程中。根据Cyril Mottier 的研究,您使用 Maps V2 执行的几乎所有操作都会导致 IPC 调用。

于 2013-01-25T17:07:24.400 回答