gpt4 book ai didi

sql - 如何将纬度、经度坐标转换为postgis地理类型

转载 作者:行者123 更新时间:2023-11-29 11:35:08 29 4
gpt4 key购买 nike

我的表有两个用于纬度和经度坐标的浮点列。

我想使用 PostGIS 的 ST_DWithin查找距给定点一定距离内的所有记录。

ST_DWithin 的签名期望前两个参数是几何或地理数据类型,所以我很确定解决方案是将 lat/lng 坐标转换为地理,但我无法获得它可以工作。

以下是起作用的:

SELECT * 
FROM stops
WHERE ST_DWithin( ST_GeogFromText('SRID=4326;POINT(-77.09 38.89)'),
ST_GeogFromText('SRID=4326;POINT(' || stops.lng || ' ' || stops.lat || ')'), 10000.0)

我收到这个错误:

ERROR: function st_geogfromtext(unknown) does not exist

LINE 1: SELECT * FROM stops WHERE ST_DWithin( ST_GeogFromText('SRID=...

我做错了什么?

最佳答案

糟糕。

原来的语法(上面)实际上是正确的。但是我在安装 PostGIS 后错过了一个关键步骤:

psql -d <DATABASE_NAME_HERE> -c "CREATE EXTENSION postgis";

原来你必须在每个数据库上启用它才能工作。 就是函数无法识别的原因。

由于这方面的资源不多,我将留下这个问题,以防它对其他人有用。

关于sql - 如何将纬度、经度坐标转换为postgis地理类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300616/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com