如何用java读取并解析geojson文件
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
工具:json.simple、wowtools
json.simple用于读取json文件,wowtools自动适配地解析geojson格式。
1.引入依赖
代码如下(示例):
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.wowtools</groupId>
<artifactId>giscat-vector-pojo</artifactId>
<version>1.1.1-STABLE</version>
</dependency>
2.读取并解析数据
比如现有geojson文件格式如下:
代码如下(示例):
public static void main(String[] args) {
//创建一个JSONParser对象
JSONParser jsonParser = new JSONParser();
//解析JSON文件的内容
try {
//先用json.simple读取geojson文件
JSONObject obj = (JSONObject) jsonParser.parse(new FileReader("E:\\河南省乡镇点\\FieldPolygon.geojson"));
//删除除features以外其它对象,方便下面所需的geojson字符串
obj.remove("type");
obj.remove("name");
obj.remove("crs");
//获取features对象json字符串
String strGeoJson =obj.toString();
GeometryFactory geometryFactory = new GeometryFactory();// jts GeometryFactory
//获取要素集合
FeatureCollection featureCollection = GeoJsonFeatureConverter.fromGeoJsonFeatureCollection(strGeoJson, geometryFactory);
//遍历feature集合,取出其geometry或属性字段
for (Feature feature : featureCollection.getFeatures()) {
System.out.println(feature.getGeometry());//POLYGON (.....)
System.out.println(feature.getProperties().get("name"));//"properties": { "id": 1, "name": "田块" }
}
System.out.println(obj.toString());
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
总结
如若想提取除“Feature”之外的对象的值时,可在执行remove之前将值提取出来即可。
如提取name:
String obj2=(String) obj.get("name");
如提取crs中的name,需要将json对象转为map,再取值。
JSONObject obj = (JSONObject) jsonParser.parse(new FileReader("E:\\河南省乡镇点\\FieldPolygon.geojson"));
//根据结构一层层取值
Map map = (Map) JSON.parse(obj.toString());
Map map1 =(Map) JSON.parse (map.get("crs").toString());
Map map2 =(Map) JSON.parse (map1.get("properties").toString());
String name = (String) map2.get("name");
System.out.println(name);
除上述方法外,还可以将json中各个对象封装成java类:参考https://www.cnblogs.com/dabenhou/p/14451224.html?ivk_sa=1024320u
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
7 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)