谁能告诉我如何使用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
答案 0 :(得分:1)
在读取先前用readFromFile
方法编写的二进制文件时,应该尝试使用您尝试调用的writeToFile
方法,这是一种缓存数据的方式,而不是读取shapefile的方式,尽管shapefile是二进制文件。
由于GeoJSON示例运行良好,并且由于没有fromShapeFile
方法,因此您唯一的选择是解析shapefile并将其转换为GeoJSON,以便您可以使用fromGeoJSON
方法读取它。