【问题标题】:Creating a table for Polygon values in Postgis and inserting在 Postgis 中为多边形值创建表并插入
【发布时间】:2016-12-20 14:50:28
【问题描述】:

我有以下 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)与上面的表格进行比较,并拉出区域名称

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

【问题讨论】:

    标签: postgresql postgis


    【解决方案1】:

    我没有足够的声誉来评论你的问题,有一个你可能会觉得有用的链接: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)
    

    【讨论】:

    • 非常感谢 icuken。这真的很有帮助!
    猜你喜欢
    • 2017-01-12
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    相关资源
    最近更新 更多