在 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)
我有以下 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)