是否可以覆盖Android MapView显示的切片源?
我在数据库中有一些地图图像图块,并希望使用Google地图MapView来查看它们。
另外,如果这是不可能的......有没有人知道允许这个的MapView? (OpenStreetMap API ... MapQuest API ......等)
我正在寻找一种不依赖于GPL / LGPL的解决方案。
答案 0 :(得分:5)
您可以使用其中一些库:osmdroid,mapsforge。它们都提供了一些互联网地图数据库的接口,并允许创建自己的地图提供程序。
它们允许您拥有(和处理)离线缓存,动态异步地图加载,重新采样缩放,添加叠加等,就像原始MapView一样。 使用这些库的另一个好处是它们是为谷歌MapView的就地替换而精心设计的。
您也可能对Google的Javascript地图api感兴趣,它也允许使用自定义地图来源(请参阅this link)。此方法可用于将地图加载到WebView中。但在这种情况下,您仍然需要使用Google的Maps API密钥,而且我发现您每天仍然只能使用25,000次使用。
== UPDATE ==
现在,Google地图for Android(Google Play服务中的那个)支持自定义磁贴,因此不再需要使用第三方库来应用您自己的磁贴(如果使用符合许可协议)。
答案 1 :(得分:3)
您可以创建TileProvider
以将切片返回到Maps API。然后使用setMapType
设置MAP_TYPE_NONE
,只显示您提供的图块。我知道可以为MapFragment
执行此操作,但尚未使用MapView
进行尝试。
有关示例,请参阅MapDemo TileOverlayDemo中Google的示例代码。