首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从PostgreSQL到Postgis

从PostgreSQL到Postgis
EN

Stack Overflow用户
提问于 2014-03-06 10:56:26
回答 1查看 205关注 0票数 1

我这里有麻烦了。我在postgres有两张桌子,列“lat”和“lon”。如何将它们转换为后地理(点),并计算这些点之间的距离?我是新手,所以请帮帮我:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-06 20:57:44

一般来说,see this answer (甚至this one)。

代码语言:javascript
运行
复制
-- Add a spatial column with EPSG:4326 (WGS84)
ALTER TABLE some_table ADD COLUMN geom geometry(Point, 4326);

-- Use coordinates to create point geometries
UPDATE some_table SET
  geom = ST_SetSRID(ST_MakePoint(lon, lat), 4326);

然后,要计算每个点到另一个点的距离,请使用如下所示:

代码语言:javascript
运行
复制
SELECT t1.gid, t2.gid, ST_Distance(t1.geom, t2.geom)
FROM some_table t1, some_table t2
WHERE t1.gid > t2.gid;

要知道距离是笛卡儿的,基于程度,所以实际上是没有意义的.考虑使用geography类型(而不是geometry)来获得以米为单位的距离结果,或者在geometry中使用ST_Distance_SphereST_Distance_Spheroid

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22222359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档