postgis函数转换线几何到不同坐标系参数实例

从postgis工具导入的shp地理数据,存放到数据库后,发现坐标系参数查询为0
在这里插入图片描述
查询后对应线经纬度显示的为这样
在这里插入图片描述
图像是没有失真的,但是现在需要显示到mapbox图像上,坐标系参数是为4490的,经纬度坐标都在-180到180之间,这样查询后显示到页面上,这种8位数的坐标是无法显示的,因此需要将这些线数据转换称4490坐标系下对应的坐标。
刚开始直接使用坐标系参数转换函数进行转换,但是好像只有参照系数变了,查询经纬度后,还是原来的数据…
在这里插入图片描述
在这里插入图片描述
因此需要其他方法进行转换。
使用ST_Transform函数, 可以将对应几何数据转换成其他坐标系参数,目前这种8位数的坐标,应该是属于900913坐标系下的对象。
在这里插入图片描述
这种方法是可行的,但是导入数据库的是线几何,不能直接使用函数去进行转换,因此需要其他函数去获取每条线中的所有点,然后转换每个点之后,根据线进行重新组合,这样转换的线,才是对应4490坐标系下的了。
ST_DumpPoints函数可以拆分geom数据中每个元素,记得加上识别号,方便分组
在这里插入图片描述
然后根据集合中的元素进行获取,就能按照gid分组,将线拆分成一组组的点坐标了。
在这里插入图片描述
接下来的工作,就直接将这个结果拿去进行坐标的转换,就能获得4490坐标系参数下,对应的点坐标了。
在这里插入图片描述
最后再根据st_makeline函数,将每组的点转换成线几何,更新即可。
在这里插入图片描述

至于整个数据库更新坐标系,对sql比较了解的,可以直接写sql进行字段的更新替换,对sql使用不习惯的,也可以写java程序,先获取上面转换的集合,然后再根据gid进行分组,将每组的点几何集合转换成线,再根据gid更新到数据库中。这里我使用springboot直接写方法了。
在这里插入图片描述
在这里插入图片描述

补充:

尴尬,写麻烦了,这个ST_Transform可以直接转linestring的,这样写就能直接转了。
在这里插入图片描述
这样一来,坐标8位数的900913坐标系参数的数据,就能显示在坐标系参数4490下的mapbox图像中了,虽然上面写了那么多绕弯子的东西,但是很多思路是没问题的,就不删除了,有些可以拿去参考下。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值