使用WhirlyGlobe显示ShapeFiles

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

谁能告诉我如何使用WhirlyGlobe SDK在Android中显示本地shapefile?

我正在使用readFromFile,但我总是假的。 http://mousebird.github.io/WhirlyGlobe/reference/android_2_5/index.html

我的代码:string是包含shapefile的文件夹的路径

@Override
protected void onPostExecute(String string) {

    VectorInfo vectorInfo = new VectorInfo();
    vectorInfo.setColor(Color.RED);
    vectorInfo.setLineWidth(4.f);

    VectorObject object = new VectorObject();

    File fileShape = new File(string + "/poly.shp");

    String shapefile = "";
    if (fileShape .exists()){
        shapefile = fileShape.getAbsolutePath();
    }



    if(object.readFromFile(shapefile)){
        controller.addVector(object,vectorInfo,MaplyBaseController.ThreadMode.ThreadAny);
    }

    //if (object1.fromGeoJSON(shapefile)) {
    //   controller.addVector(object, vectorInfo, MaplyBaseController.ThreadMode.ThreadAny);
    //}
}

GeoJSON的例子运行正常。 http://mousebird.github.io/WhirlyGlobe/tutorial/android/vector-data.html

java android gis shapefile
1个回答
1
投票

您尝试调用的readFromFile方法应该在读取以前使用writeToFile方法编写的二进制文件时使用,作为缓存数据的方法,而不是读取shapefile,尽管shapefile是二进制文件。

由于GeoJSON示例工作正常,并且由于没有fromShapeFile方法,因此您唯一的选择是解析shapefile并将其转换为GeoJSON,以便您可以使用fromGeoJSON方法读取它。

Android lib to read or parse shapefile

© www.soinside.com 2019 - 2024. All rights reserved.