在 Postgis 中为多边形值创建 table 并插入

Creating a table for Polygon values in Postgis and inserting

我有以下 10 个不同区域的区域 "name" 和 "polygon" 值 ('A',50.6373 3.0750,50.6374 3.0750,50.6374 3.0749,50.63 3.07491,50.6373 3.0750)

我想使用 POSTGIS

在 postgres 数据库中创建一个 table

稍后我会在一个table中有lan和lat值(例如50.5465 3.0121)来与上面的table进行比较并提取区域名称

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

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

为您的数据库添加扩展程序

CREATE EXTENSION postgis;

正在创建 table

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)