Android API是否支持KML文件?

Android中是否有办法将KML文件从Google Earth加载到地图窗口小部件中?

具体来说,我希望尽可能轻松地将在Google地球中创建的已保存形状加载到地图小部件之上。 有没有人曾经试过这个?

这是一个古老的问题,但如果有人偶然发现它,这个答案可能会有所帮助。

你的意思是以编程方式将kml文件添加到应用程序内的mapfragment上吗? 如果是这样,您可以使用此方法。

private void loadKml(File file) { try( InputStream inputstream = new FileInputStream(file) ) { // Set kmllayer to map // map is a GoogleMap, context is the Activity Context KmlLayer layer = new KmlLayer(map, inputstream, context); layer.addLayerToMap(); // Handle these errors } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); } } 

缺点是你几乎无法控制kml层的显示方式。 您可以在此处找到完整的参考: https : //developers.google.com/maps/documentation/android-api/utility/kml

您还可以尝试使用JAK和JAXB将kml文件解析为POJO,并以编程方式绘制该数据。 如果你可以让它工作,它是相对无痛的。 https://labs.micromata.de/projects/jak.html

看起来您可以在地图上加载KML文件,但没有像从libkml那样获得的编程访问。