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

问题描述 投票:0回答:1

[文件Kml是通过FTP和apache库下载的,并保存在存储器中:

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

如何将File转换为KmlLayer类型并在地图中显示?我可以显示文件是否从资源上的原始包中导入而没有问题。

    KmlLayer layer = new KmlLayer(mMap,R.raw.test,getContext());
    layer.addLayerToMap();
android google-maps ftp kml
1个回答
0
投票

您可以使用类似的东西:

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();
    }
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.