GeoTools是一個開源的Java類庫,它提供了一套強大的工具集,非常適合處理空間數據。其中包括shp轉json的功能。本文將介紹如何使用GeoTools將shp格式的空間數據轉換成json格式。
public String shp2Json(File file) throws IOException {
ShapefileDataStore shpDataStore = new ShapefileDataStore(file.toURI().toURL());
shpDataStore.setCharset(Charset.forName("GBK"));
SimpleFeatureSource featureSource = shpDataStore.getFeatureSource(shpDataStore.getTypeNames()[0]);
SimpleFeatureCollection featureCollection = featureSource.getFeatures();
FeatureJSON featureJSON = new FeatureJSON();
StringWriter writer = new StringWriter();
featureJSON.writeFeatureCollection(featureCollection, writer);
return writer.toString();
}
這段代碼的實現過程如下:
首先,我們需要使用ShapeFileDataStore打開存儲shp數據的文件。在這里,我們設置了字符集為GBK,因為在讀取shp文件時默認字符集是ISO-8859-1,對于中文字符會出現亂碼。接下來,我們通過getFeatureSource()方法獲取shp文件中的要素(feature)。最后,我們使用FeatureJSON工具將要素集轉換成json格式。
通過使用GeoTools將shp格式的數據轉換成json格式,我們可以更方便地對空間數據進行分析與處理。同時,該方法也可用于將其他格式的空間數據轉換成json格式。