向Android地图应用程序添加KML图层

3
我最近开始涉足Android开发,并正在制作一个应用程序,该应用使用Google API SDK显示地图,基本上是原始示例,但稍微编辑了一下。 它的功能很不错,但我希望能够更多地利用它。 我的问题是:
如何将KML图层添加到其中? 我找不到很多相关的示例,并且没有一个非常清晰明确的。 我知道如何在网站上使用Javascript实现这一点,但不知道如何在Android上实现。
有人可以提供帮助吗?
2个回答

5

Google最近在其实用程序库中添加了对KML的支持。您可以按照以下方式实例化一个KMLLayer:

KmlLayer layer = new KmlLayer(getMap(), R.raw.kmlFile, getApplicationContext());

如果您拥有一个流(也许您需要的KML在远程服务器上):
KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext());

在此之后,您需要将该图层添加到地图中:
layer.addLayerToMap();

更多关于Google地图KML导入实用程序的信息。 这个库在这里:Google地图Android API实用库(需要0.4+版本)。
注意:目前,它是一个Beta功能。事实上,似乎不能对多边形进行任何修改、更改样式等操作...
希望对你有所帮助。

你正在使用0.4+版本吗? - Salvatore Silvestri
我忘记在应用程序 gradle 构建文件中添加编译“条款”(compile 'com.google.maps.android:android-maps-utils:0.4+')。现在,一切都好了。谢谢。 - kokbira
你能否批准我的答案? - Salvatore Silvestri
对不起,我没有注意到你不是问题的所有者。我正在和尼克·刘易斯交谈。 - Salvatore Silvestri
但是,KMZ文件怎么办?我无法使用相同的KmlLayer打开它们,我快疯了 :) - andrea.rinaldi
显示剩余3条评论

2
如果您准备好转向OpenSteetMap地图,那么您可以使用osmdroidOSMBonusPack来支持KML的读取、保存、显示和样式设置。
有一个专门的教程关于KML。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接