从存储器加载Kml文件并显示在地图中



文件Kml通过apache库使用FTP下载并保存在存储器上:

File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File downloaded = new File(dir.getAbsolutePath() + "/0001_0005.kml");
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloaded));
boolean success = ftp.retrieveFile("/0001_0005.kml", outputStream1);
outputStream1.close();

如何将文件转换为类型KmlLayer并在地图中显示?如果文件是从资源上的原始包导入的,我可以毫无问题地显示该文件。

KmlLayer layer = new KmlLayer(mMap,R.raw.test,getContext());
layer.addLayerToMap();

您可以使用类似的东西:

private KmlLayer createLayerFromFile(String kmlFileName) {
KmlLayer kmlLayer = null;
InputStream inputStream;
try {
inputStream = new FileInputStream(kmlFileName);
kmlLayer = new KmlLayer(mGoogleMap, inputStream, getApplicationContext());
inputStream.close();
}
catch(IOException e)
{
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
return kmlLayer;
}

并以这种方式使用:

@Override
public void onMapReady(GoogleMap googleMap) {
mGoogleMap = googleMap;
// path to your kml file 
String kmlFileName = dir.getAbsolutePath() + "/0001_0005.kml";
try {
KmlLayer kmlLayer = createFromKml(kmlFileName);
kmlLayer.addLayerToMap();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}

最新更新