谁能告诉我如何使用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
您尝试调用的readFromFile
方法应该在读取以前使用writeToFile
方法编写的二进制文件时使用,作为缓存数据的方法,而不是读取shapefile,尽管shapefile是二进制文件。
由于GeoJSON示例工作正常,并且由于没有fromShapeFile
方法,因此您唯一的选择是解析shapefile并将其转换为GeoJSON,以便您可以使用fromGeoJSON
方法读取它。