使用WhirlyGlobe显示ShapeFile

时间:2019-02-26 10:21:20

标签: java android gis shapefile

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

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

我的代码:字符串是包含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

1 个答案:

答案 0 :(得分:1)

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

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

Android lib to read or parse shapefile