Does the Android API support KML files?
Asked Answered
W

2

5

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 widget as easily as possible. Has anybody ever tried this before?

Woolsey answered 15/3, 2010 at 1:53 Comment(0)
V
6

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

Vespertilionine answered 7/12, 2015 at 0:12 Comment(0)
W
-1

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

Woolsey answered 29/6, 2010 at 16:14 Comment(1)
Could you extend your answer a bit? Code snippet?Don

© 2022 - 2024 — McMap. All rights reserved.