Android 中有没有一种方法可以将 Google 地球中的 KML 文件加载到 map 小部件中?
具体来说,我希望尽可能轻松地加载在 Google 地球中创建的已保存形状覆盖 map 小部件。以前有人试过这个吗?
最佳答案
这是一个老问题,但如果有人偶然发现这个答案,这个答案可能会有一些用处。
您是指以编程方式将 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
关于java - Android API 是否支持 KML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444639/