Android API가 KML 파일을 지원합니까?
-
20-09-2019 - |
문제
Android에는 Google 어스에서 KML 파일을 맵 위젯에로드하는 방법이 있습니까?
구체적으로 Google Earth에서 생성 된 저장된 모양을 최대한 쉽게 맵 위젯을 추월하려고합니다. 아무도 전에 이것을 시도한 적이 있습니까?
해결책
그것은 오래된 질문이지만 누군가가 그것을 우연히 발견하면이 대답은 약간의 사용 일 수 있습니다.
프로그래밍 방식으로 앱 내부의 MAPFRAGMENT에 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
jak 및 jaxb를 사용하여 KML 파일을 pojo로 구문 분석하고 그 데이터를 프로그래밍 방식으로 그릴 수도 있습니다. 당신이 그것을 작동시킬 수 있다면 그것은 상대적으로 고통스럽지 않습니다. https://labs.micromata.de/projects/jak.html
다른 팁
맵에 KML 파일을로드 할 수 있지만 libkml에서 얻을 수있는 프로그램 액세스는 없습니다.
제휴하지 않습니다 StackOverflow