java - Android API 是否支持 KML 文件?

标签 java android kml google-earth

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/

相关文章:

android - 什么是使用 Messenger 或 Intent 进行更快的交流?

javascript - 通过 Google Maps API v3 访问 ExtendedData 信息

java - 将sql查询的输出写入文件

java - org.postgresql.util.PSQLException : ERROR: graph_path is NULL

java - NetBeans 中 Java API 和语言的上下文帮助

android - 如何在派生的 IMarketBillingService.java 文件中禁用 Eclipse 警告?

java - Android NullPointerException 和 GetDatabaseLocked

kml - 向 Google Earth 传递安全的 KML 文件

kml - 如何使 KML 不导入多几何顺序

java - 使用 JAX-RS 和 Jackson 将 JPA 实体转换为 REST 表示的最佳方法