Does the Android API support KML files?

前端 未结 2 1775
失恋的感觉
失恋的感觉 2020-12-17 02:37

Is there a way in Android to load KML files from Google Earth into a map widget?

Specifically I am looking to load saved shapes created in Google Earth overtop a map

相关标签:
2条回答
  • 2020-12-17 03:26

    It looks like you can load KML files on a map but there is no programmatic access like you would get from libkml.

    0 讨论(0)
  • 2020-12-17 03:32

    It is an old question but this answer might be of some use if someone happens to stumble upon it.

    Do you mean to add the kml file onto a mapfragment inside an app programmatically? If so, you can use this method.

     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();
        }
    
    }
    

    The downside is that you have little to no control as to how the kml layer is displayed. You can find a complete reference here: https://developers.google.com/maps/documentation/android-api/utility/kml

    You can also try to parse the kml file to a POJO using JAK and JAXB and draw that data programmatically. If you can get it to work it is relatively painless. https://labs.micromata.de/projects/jak.html

    0 讨论(0)
提交回复
热议问题