Это старый вопрос, но этот ответ может быть полезен, если кто-то случайно наткнется на него.
Вы хотите программно добавить файл kml в фрагмент карты внутри приложения?
Если это так, вы можете использовать этот метод.
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
Вы также можете попытаться проанализировать файл kml в POJO, используя JAK и JAXB, и получить эти данные программно. Если вы можете заставить его работать, это относительно безболезненно. https://labs.micromata.de/projects/jak.html