Postgresql 经纬度

增加一列:

add column `location` geometry default 

st_setsrid(st_makepoint((0)::double precision, (0)::double precision), 4326)

 

 

使用距离过滤:

1. st_distance( geometry, geometry) 

这个函数有两个坑点, 1,是使用 欧式空间, 2 则返回的单位不是以米或者km

2. st_distance_sphere(geometry, geometry)  

返回的单位是meter

3. st_dwithin(geometry,geometry)

st_dwithin(geography,geography,100米)

坑的是, geography其实是有坐标系的, 同一坐标系才能计算距离

 

转载于:https://www.cnblogs.com/lykm02/p/6023707.html

PostgreSQL数据库中导入经纬度坐标数据,通常需要将经纬度数据存储在合适的地理空间数据类型中,比如`POINT`类型。你可以使用以下步骤来实现经纬度数据的导入: 1. 准备数据:首先确保你有一个经纬度数据文件,比如CSV格式。数据应包含至少两列,分别代表经度和纬度。 2. 创建表:在PostgreSQL中创建一个新表,该表应包含一个`POINT`类型的数据列,用来存储经纬度信息。 ```sql CREATE TABLE your_table ( id SERIAL PRIMARY KEY, location POINT ); ``` 3. 使用COPY命令导入数据:你可以使用`COPY`命令将CSV文件中的数据导入到表中。假设CSV文件中第一列是纬度,第二列是经度。 ```sql COPY your_table (location) FROM '/path/to/your_file.csv' WITH CSV HEADER; ``` 如果你的数据文件中经纬度的位置不同,你可能需要指定字段的位置,例如: ```sql COPY your_table (location) FROM '/path/to/your_file.csv' CSV HEADER WITH (FORMAT 'DELIMITER', DELIMITER ',', FIELDQUOTE '"', FORCE_QUOTE *) ``` 4. 转换数据:如果数据不在`POINT`格式,你需要将经度和纬度转换成PostGIS的`POINT`格式。你可以使用PostGIS提供的函数来实现这一点,如下: ```sql UPDATE your_table SET location = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326); ``` 这里的`longitude`和`latitude`是包含在你的表中的经度和纬度字段,`4326`是WGS 84坐标参考系统的EPSG代码。 5. 使用PostGIS扩展:PostgreSQL的PostGIS扩展提供了地理空间数据处理功能。确保你已经安装了PostGIS扩展,然后才能使用上述的空间函数。 安装PostGIS扩展(如果尚未安装): ```sql CREATE EXTENSION postgis; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值