将PostGIS与具有小数点坐标的现有数据表一起使用

ava*_*tar 6 linux gis postgresql postgis

我有一个CSV格式的数据文件,其中包含以下数据:field id | 数据瓦片| 数据描述| 经度| 纬度

我已经安装了PostgreSQL和PostGIS,我想使用PostGIS创建一个查询,该查询将显示距离纬度/经度位置指定距离内的所有记录(来自上表).

问题是我不知道如何开始.我是否只是将我的CSV文件导入PostgreSQL数据库并在将CSV文件转换为PostgreSQL表后开始使用PostgreSQL和PostGIS函数?

是否有任何额外的步骤使表格与PostGIS功能一起使用?

这会是什么样的正确步骤?我真的很感谢你的帮助!

DrC*_*sos 8

要使用PostGIS,您需要将这些脚本导入工作数据库.

完成此步骤后,设置表并将PostGIS列添加到其中

SELECT AddGeometryColumn('yourtable', 'columnname', 4269, 'POINT', 2 );
Run Code Online (Sandbox Code Playgroud)

最后3个值是SRID,类型和维度.我只是假设这是你想要的.您可能需要调整SRID,但这应该没问题.

您可以在导入/更新/设置的任何内容中设置添加几何图形

ST_Transform(ST_PointFromText('POINT(-85.45899 32.1337)', 4326));
Run Code Online (Sandbox Code Playgroud)

可以将此查询写入数据的UPDATE或INSERT脚本.


小智 7

我只需要解决相同的任务,并做了类似于DrColossos的解决方案...你现在可能已经完成了它,但我只是想添加它以防有人谷歌搜索这个问题(就像我做的那样):没有必要要编写脚本以从lat/lon字段生成几何,您可以使用简单的连接字符串:

UPDATE mytable
SET the_geom = ST_PointFromText('POINT(' || x ||' '|| y ||')', 4326)
Run Code Online (Sandbox Code Playgroud)