- 背景:PostgreSQL 可以扩展PostGIS 模块,来完成地理空间计算方面的任务
- 问题描述:使用内置函数
ST_Length
来计算轨迹长度时,发现计算的结果和实际不太符合,查阅相关博客发现原来是坐标系的问题。(但是各个博客的内容可能不太准确,折腾了半天,最后找到官网,成功把问题解决,只能说,官网是个好东西) - 问题解决:
-
概念: geometry和geography的区别
- geometry:planar 平面坐标系【supported by SQL Server conforms to the Open Geospatial Consortium (OGC) Simple Features for SQL Specification version 1.1.0.】
- geography: terrestrial 地理坐标系【stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.】
- 也就是说,geometry是一个平面几何的概念,而geography是一个地球的地理的概念。所以当两个点形成一条轨迹时,输入经纬度直接采用geometry即几何的方法来算的话,会不准,因为地球是一个球体,而不是一个简单的平面。
-
ST_Length
函数的使用- 先来看看官网
-
PostgreSQL中的距离计算问题 ST_Length
最新推荐文章于 2024-09-03 13:30:00 发布