加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – Postgis中的2点之间的距离,以srid 4326为单位

发布时间:2020-12-13 16:12:49 所属栏目:百科 来源:网络整理
导读:这可能是一个简单的问题,但我对PostGIS并不是非常的好,而且还没有完全了解这一切. 基本上我有一个带有POINT列(点)的表(节点).我已经在此列创建了一个索引 create index nodes__points on nodes using gist (point) 列是创建的 select addgeometrycolumn('nod
这可能是一个简单的问题,但我对PostGIS并不是非常的好,而且还没有完全了解这一切.

基本上我有一个带有POINT列(点)的表(节点).我已经在此列创建了一个索引

create index nodes__points on nodes using gist (point)

列是创建的

select addgeometrycolumn('nodes','points','POINT',4326,2)

我正在使用srid 4326,因为我添加的形式(纬度,经度)的数据. (即,爱尔兰都柏林的职位的坐标系统= 53.353 lon = -6.264(我添加了GeomFromText(‘POINT(-6.264 53.535)’))).

对于每个点,我想要找到大约在一个1公里的框内,以该点为中心的点(所以selcet a.id,count(*)从节点为a,节点为b,其中SOME_DISTANCE_FUNCTION_HERE(a.point,b.point,1000)group by a.id;它不一定是精确的,只是一个粗俗的生意人物,1公里的bbox是罚款,1公里的圈子是罚款,它不一定是1公里,只是这个顺序的数量.

ST_Distance / ST_DWithin / etc都使用SRID的单位,其中4326 / WGS64是度数(因此1 = 1度的度数/经度).但我想用米.

我尝试了ST_distance_sphere和st_dwithin可以使用米,但如果我这样做,解释说明索引没有被使用.

我怎么能粗略地得到我想要的,并使用地理指标?

更新:这是在PostgreSQL 9.1和PostGIS 2.0 svn构建.

您可以使用ST_Transform来使用米,还会注意到并非所有功能都可用于地理类型,但是如果您真的需要使用速度ST_DWithin,则是最快的方式.以下是以度数和米为单位的转换次数近似值:
| places | degrees    | distance |
| ------ | ---------- | -------- |
| 0      | 1.0        | 111 km   |
| 1      | 0.1        | 11.1 km  |
| 2      | 0.01       | 1.11 km  |
| 3      | 0.001      | 111 m    |
| 4      | 0.0001     | 11.1 m   |
| 5      | 0.00001    | 1.11 m   |
| 6      | 0.000001   | 0.111 m  |
| 7      | 0.0000001  | 1.11 cm  |
| 8      | 0.00000001 | 1.11 mm  |

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读