• OGC定义的几何要素


    OGC定义了两种描述几何对象的格式,分别是WKB(Well-Known Binary)和WKT(Well-Known Text)。 在SQL语句中,用以下的方式可以使用WKT格式定义几何对象:
    几何类型     WKT格式
    点     POINT(0 0)
    线     LINESTRING(0 0,1 1,1 2)
    面     POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))
    多点     MULTIPOINT(0 0,1 2)
    多线     MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))
    多面     MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))
    几何集合     GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4)))

        本文通过实例演示几何对象的定义。
    1.建表

        CREATE TABLE postgis2d (
          id SERIAL PRIMARY KEY,
          name VARCHAR(128),
          geom GEOMETRY
        );

    2.添加GIST索引

    CREATE INDEX postgis2d_gix ON postgis2d USING GIST (geom);

    3.插入数据
    3.1 点(POINT)

        INSERT INTO postgis2d (name, geom) VALUES ('p1',
          ST_GeomFromText('POINT(0 0)', 26910)
        );
        INSERT INTO postgis2d (name,geom) VALUES ('p2',
          ST_GeomFromText('POINT(5 0)', 26910)
        );
        INSERT INTO postgis2d (name,geom) VALUES ('p3',
          ST_GeomFromText('POINT(0 10)', 26910)
        );

        或使用多点(MULTIPOINT)

        INSERT INTO postgis2d (name,geom) VALUES ('p3',
          ST_GeomFromText('MULTIPOINT((0 0),(5 0),(0 10))', 26910)
        );

          QGIS中显示几何如下:

     
    3.2 线(LINESTRING)

        INSERT INTO postgis2d (name, geom) VALUES ('L1',
          ST_GeomFromText('LINESTRING(0 0,1 1,1 2)', 26910)
        );
         
        INSERT INTO postgis2d (name, geom) VALUES ('L2',
          ST_GeomFromText('LINESTRING(1 0,2 1,2 2)', 26910)
        );

        或使用多线(MULTILINESTRING)

        INSERT INTO postgis2d (name, geom) VALUES ('L1',
          ST_GeomFromText('MULTILINESTRING((0 0,1 1,1 2),(1 0,2 1,2 2))', 26910)
        );

        QGIS中显示几何如下:

        
    3.3 多边形(POLYGON)

        INSERT INTO postgis2d (name, geom) VALUES ('p1',
          ST_GeomFromText('POLYGON((4 0,8 0,8 4,4 0))', 26910)
        );
         
        INSERT INTO postgis2d (name, geom) VALUES ('p2',
          ST_GeomFromText('POLYGON((1 1, 2 1, 2 2, 1 2,1 1))', 26910)
        );

        或使用多边形集合(MULTIPOLYGON)

        INSERT INTO postgis2d (name, geom) VALUES ('p2',
          ST_GeomFromText('MULTIPOLYGON(((4 0,8 0,8 4,4 0),(1 1, 2 1, 2 2, 1 2,1 1)))', 26910)
        );

        QGIS中显示几何如下:

         
    3.4 几何集合

        INSERT INTO postgis2d (name, geom) VALUES ('c1',
          ST_GeomFromText('GEOMETRYCOLLECTION(POLYGON((4 0,8 0,8 4,4 0)),LINESTRING(2 3,3 4))',26910)
        );


  • 相关阅读:
    富文本的一般处理方式,document.getElementById('富文本的ID').contentWindow.document.body.innerHTML = '%s'" %(content)
    本地搭建Jenkins
    if __name__ == '__main__'是什么意思?如何理解?看到一个很有用的解答
    关于执行webdriver.Chrome; 报错WebDriverException: Message: unknown error: Element is not clickable at point (1085, 103)
    【转载】学习总结——接口测试基础
    fiddler使用——配置抓取https,出现提示“禁用解密”“单击配置”
    算法(二叉树-矩阵-堆排序)
    算法(递归)---写的很乱
    ES6高级技巧(二)
    ES6高级使用技巧(reduce,filter篇)
  • 原文地址:https://www.cnblogs.com/ruiy/p/11970638.html
Copyright © 2020-2023  润新知