【JTS】GeoJson的生成与解析

本文介绍如何使用Java实现WKT格式与GeoJSON格式之间的相互转换,包括具体代码实现及所需依赖的jar包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

gt-geojson-14.2.jar,json-simple-1.1.1.jar,jts-1.8.jar

直接上代码

代码

  • wkt格式的geometry转成json格式

复制代码

public String evaluate(String wkt) {

        String ret = null;
        try {
            Geometry geometry = reader.read(wkt);
            StringWriter writer = new StringWriter();
            GeometryJSON g = new GeometryJSON();
            g.write(geometry, writer);
            ret = writer.toString();
        } catch (Exception e) {
            LOGGER.error(e.getMessage(), e);
        }
        return ret;
    }

复制代码

  • json格式转wkt格式

复制代码

public String evaluate(String geoJson) {
        String ret = null;
        GeometryJSON gjson = new GeometryJSON();
        Reader reader = new StringReader(geoJson);
        try {
            Geometry geometry = gjson.read(reader);
            ret = geometry.toText();
        } catch (IOException e) {
            LOGGER.error(e.getMessage(), e);
        }
        return ret;
    }

 

 

导入jar包:

gt-geojson-9.3.jar,json-simple-1.1.1.jar,jts-1.8.jar

 

1.由wkt格式的geometry生成geojson:

 


 
  1. /**

  2. * 由wkt格式的geometry生成geojson

  3. * @param wkt

  4. * @return

  5. */

  6. public static String geoToJson(String wkt){

  7. String json = null;

  8. try{

  9. WKTReader reader = new WKTReader();

  10. Geometry geometry = reader.read(wkt);

  11. StringWriter writer = new StringWriter();

  12. GeometryJSON g = new GeometryJSON();

  13. g.write(geometry,writer);

  14. json = writer.toString();

  15. }catch(Exception e){

  16. e.printStackTrace();

  17. }

  18. return json;

  19. }

2.将geojson解析为geometry的wkt形式

 


 
  1. /**

  2. * 将geojson解析为geometry的wkt形式

  3. * @param geoJson

  4. * @return

  5. */

  6. public static String jsonToWkt(String geoJson){

  7. String wkt = null;

  8. GeometryJSON gjson = new GeometryJSON();

  9. Reader reader = new StringReader(geoJson);

  10. try{

  11. Geometry geometry = gjson.read(reader);

  12. wkt = geometry.toText();

  13. }catch(IOException e){

  14. e.printStackTrace();

  15. }

  16. return wkt;

  17. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值