postgresql - 在 Postgis 中为多边形值创建表并插入

标签 postgresql postgis

我有以下 10 个不同区域的区域“名称”和“多边形”值 ('A',50.6373 3.0750,50.6374 3.0750,50.6374 3.0749,50.63 3.07491,50.6373 3.0750)

我想使用 POSTGIS 在 postgres DB 中创建一个表

后面我会把lan和lat的值(比如50.5465 3.0121)放在一个表里,和上面的表对比,拉出地区名

您能帮我编写创建和插入多边形坐标的代码吗?

最佳答案

我没有足够的声誉来评论你的问题,有一个链接你可能会觉得有用:SQL query for point-in-polygon using PostgreSQL

为你的数据库添加扩展

CREATE EXTENSION postgis;

创建表

CREATE TABLE areas (
    id SERIAL PRIMARY KEY,
    name VARCHAR(64),
    polygon GEOMETRY
);

在多边形字段上创建索引

CREATE INDEX areas_polygon_idx ON areas USING GIST (polygon);

插入记录

INSERT INTO areas (name, polygon) VALUES (
    'A',
    ST_GeometryFromText('POLYGON((50.6373 3.0750,50.6374 3.0750,50.6374 3.0749,50.63 3.07491,50.6373 3.0750))')
);

查询

SELECT name FROM areas WHERE ST_Contains(polygon, ST_GeomFromText('POINT(50.637 3.074)'));
 name 
------
(0 rows)

SELECT name FROM areas WHERE ST_Contains(polygon, ST_GeomFromText('POINT(50.63735 3.07495)'));
 name 
------
 A
(1 row)

关于postgresql - 在 Postgis 中为多边形值创建表并插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937455/

相关文章:

postgresql - 删除 Postgres 中的前导零和连字符

php - 已解决 : Laravel: connection to AWS RDS results in a timed out

postgresql - Postgres创建扩展命令Docker容器

postgresql - crontab 后 postgres 数据库备份很小

postgresql - 在函数中使用 postgres CTE 的结果

mysql - 条件 SQL ORDER BY

database - PostgreSQL 的可扩展性

PostgreSQL - OSM 数据表连接非常慢

python - 使用按查询排序的无序结果

postgresql - 亚马逊 RDS : Thousands of PostGIS debugging messages appearing in my logs