5

Android 中有没有办法将 KML 文件从 Google 地球加载到地图小部件中?

具体来说,我希望尽可能轻松地将在 Google Earth 中创建的保存形状加载到地图小部件之上。以前有人试过吗?

4

2 回答 2

6

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

您的意思是以编程方式将 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

于 2015-12-07T00:12:44.300 回答
-1

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

于 2010-06-29T16:14:52.000 回答