Geotools系列说明之入门介绍与坐标系转换说明

Geotools介绍

借用官网的介绍
GeoTools is an open source Java library that provides tools for geospatial data
就是提供java处理地理空间的工具详细内容请参考官网

Geotools环境搭建

我们这里只讨论Geotools在Maven中和Idea的项目实战,至于Geotools的服务端请自行查阅官网
主要分为以下几步:

  1. Jdk支持
  2. maven引入
  3. 执行测试代码
    通过查阅官网我们可以很快速的进行项目搭建

在这里插入图片描述
在这里插入图片描述
按照官方文档的步骤进行搭建官方说明步骤

Geotools实战

  1. 坐标系的转换
    在我们进行经纬度运算的时候很自然的会遇到坐标转换的需求,下面是坐标系转换的示例:
   public static<T>  T transform(String wkt,int srcNo,int targetNo) {
        WKTReader wktReader = new WKTReader();
        //读取wkt为Geometry 几何对象
        Geometry oldGeometry;
        try {
            oldGeometry = wktReader.read(wkt);
            //获取CRS权威工厂
            CRSAuthorityFactory crsAuthorityFactory = CRS.getAuthorityFactory(true);
            //创建sourceCRS 4490 4326
            CoordinateReferenceSystem sourceCRS = crsAuthorityFactory.createCoordinateReferenceSystem("EPSG:"+srcNo);
            //创建targetCRS 3857
            CoordinateReferenceSystem targetCRS = crsAuthorityFactory.createCoordinateReferenceSystem("EPSG:"+targetNo);
            //获取MathTransform
            MathTransform mathTransform = CRS.findMathTransform(sourceCRS, targetCRS, true);
            //转换
            return (T)JTS.transform(oldGeometry, mathTransform);
        } catch (ParseException | FactoryException | TransformException e) {
            throw new RuntimeException(e);
        }


    }

上述代码通过wkt进行数据读取,设置原坐标系和目标坐标系完成转换,比如可以将4490的坐标系转成3857,或者4326的坐标系转成3857.
2 坐标系介绍
地理编码:

EPSG编码坐标系备注
4326WGS 84 1984地理坐标系统 最常用的
4490China Geodetic Coordinate System 2000中国2000
4214Beijing 1954北京坐标系
4610xian1980西安坐标系
4555New being

投影坐标系

EPSG编码坐标系备注
3857WGS 1984/Pseudo-Mercator(web墨卡托投影)坐标系投影
32650WGS 84/笛卡尔二维坐标系Between 114°E and 120°E

详情请查询EPSG官网

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
非常抱歉,我之前的回答有误。Geotools确实不支持直接的投影转换到EPSG:4479坐标系。 EPSG:4479代表了ETRS89地理坐标系,它使用欧洲地面参考系统1989(ETRS89)作为基准。在Geotools中,大多数投影转换都是基于投影坐标系,而不是地理坐标系。 如果你希望进行与EPSG:4479相关的操作,可能需要考虑以下两种方式: 1. 将你的数据从投影坐标系转换到EPSG:4326(WGS84)地理坐标系,然后再进行与EPSG:4479的转换。这可以通过使用Geotools中的投影转换工具来实现。 2. 考虑使用其他的GIS库或工具,如GDAL(Geospatial Data Abstraction Library),它提供了更广泛的坐标系支持,包括对EPSG:4479的转换。 请注意,无论你选择哪种方式,确保你有正确的Bursa-Wolf参数(七参数或三参数)用于进行转换。这些参数通常用于处理不同基准之间的差异。 对于EPSG:4479,下面是一个示例使用Geotools进行从投影坐标系(如EPSG:3857)到EPSG:4479地理坐标系转换代码: ```java CoordinateReferenceSystem sourceCRS = CRS.decode("EPSG:3857"); CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:4479"); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS, true); DirectPosition2D sourcePos = new DirectPosition2D(sourceCRS, x, y); DirectPosition2D targetPos = new DirectPosition2D(); transform.transform(sourcePos, targetPos); double targetX = targetPos.getX(); double targetY = targetPos.getY(); ``` 请注意,以上示例中的转换是从EPSG:3857投影坐标系到EPSG:4479地理坐标系。确保你根据实际情况调整源和目标坐标系的EPSG代码。 希望这可以帮助到你。再次对之前的回答错误表示抱歉。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stayhungerstayflush

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值