Geojson转换wkt 格式
maven
<geotools.version>17.1</geotools.version>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geometry</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-jts-wrapper</artifactId>
<version>${geotools.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.geotools/gt-main -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-main</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-opengis</artifactId>
<version>${geotools.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-referencing</artifactId>
<version>${geotools.version}</version>
</dependency>
转换工具类
public class GeoUtil {
/**
* geojson转wkt
*
* @author polar deer
* @date 2022/10/25 11:13
*/
public static String geojson2Wkt(String geojson) throws Exception {
//转换json
geojson = geoConvert(geojson);
//开始
GeometryJSON gjson = new GeometryJSON(7);
Geometry geometry = gjson.read(new StringReader(geojson));
WKTWriter writer = new WKTWriter();
return writer.write(geometry);
}
/**
* 转换数据结构
*
* @author polar deer
* @date 2022/10/25 11:19
*/
public static String geoConvert(String geo) {
Map<String, Object> map = JSON.parseObject(geo, Map.class);
return JSON.toJSONString(map.get("geometry"));
}
}
运行代码:
public static void main(String[] args) {
//原版geojson
String geo = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"coordinates\":[[[122.24964083202008,29.555124390962817],[123.13563167153302,30.876977580289548],[121.63515536475597,32.484697207240686],[119.96214891691329,31.306901106108057],[122.24964083202008,29.555124390962817]]],\"type\":\"Polygon\"}}]}";
//转换后geojson
String geoNew = "{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"coordinates\":[[[122.24964083202008,29.555124390962817],[123.13563167153302,30.876977580289548],[121.63515536475597,32.484697207240686],[119.96214891691329,31.306901106108057],[122.24964083202008,29.555124390962817]]],\"type\":\"Polygon\"}}";
//开始转换
try {
String wkt = GeoUtil.geojson2Wkt(geoNew);
System.out.println(wkt);
} catch (Exception e) {
e.printStackTrace();
}
}
运行结果