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)
    );

OGC定义的几何要素的更多相关文章

  1. OGC 的WCS WFS 及WMS 服务

    OGC--Open Geospatial Consortium--开放地理信息联盟,是一个非盈利的志愿的国际标准化组织,引领着空间地理信息标准及定位基本服务的发展目前在空间数据互操作领域,基于公共接口 ...

  2. OGC 的 WMS、WFS 及WCS服务(转)

    OGC——Open Geospatial Consortium——开放地理信息联盟,是一个非盈利的志愿的国际标准化组织,引领着空间地理信息标准及定位基本服务的发展目前在空间数据互操作领域,基于公共接口 ...

  3. Arcgis 几何网络分析

    ArcGIS:网络分析(转)   由于之前对网络分析的理解有很多问题,所以在网上找了一些资料,这是其中一篇我觉得比较好的,所以就整理了一下,发到网上来,留个底吧,呵呵 注:关于几何网络的建立见前面的& ...

  4. 如何创建一个要素数据类 IField,IFieldEdit,IFields,IFieldsEditI,GeometryDef,IGeometryDefEdit接口

    如何创建一个要素数据类 创建要素类用到了IFeatureWorkspace.CreateFeatureClass方法,在这个方法中有众多的参数,为了满足这些参数,我们要学习和了解下面的接口. IFie ...

  5. Qt+QGis二次开发:创建临时图层并添加要素

    开发环境:Win10 + VS2010 + Qt 4.8.6 + QGis 2.14.4 其实本文实现的功能类似于QGis中“添加文本数据图层”的一个简化版,本文不会涉及到对话框的使用,不通过与用户互 ...

  6. QGis C++ 开发之创建临时图层并添加要素

            开发环境:Win10 + VS2010 + Qt 4.8.6 + QGis 2.14.4 其实本文实现的功能类似于QGis中“添加文本数据图层”的一个简化版,本文不会涉及到对话框的使用 ...

  7. Direct2D教程III——几何(Geometry)对象

    目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct ...

  8. ArcEngine开发各种几何错误代码

    E_GEOMETRY_AMBIGUOUSPARTTYPE - Static variable in interface com.esri.arcgis.geometry.esriGeometryErr ...

  9. 利用IIdentify接口实现点选和矩形选择要素

    duckweeds 原文利用IIdentify接口实现点选和矩形选择要素 Identify接口定义了获得要素图层单个要素的属性的捷径方法.它有一个Identify方法,返回一个IArray数组对象. ...

随机推荐

  1. Vue 文档Demo01

    Vue 1. Vue 基础 1. 声明式渲染 1. v-bind <!DOCTYPE html> <html> <head> <meta charset=&q ...

  2. gensim中word2vec和其他一些向量的使用

    直接上代码吧,word2vec # test from gensim.models.word2vec import Word2Vec txt_file = open('data.txt') sente ...

  3. 基于Java+Selenium的WebUI自动化测试框架(十四)-----使用TestNG的Sample

    到目前为止,我们所写的东西,都是集中在如何使用Selenium和Java来定位和读取元素.那么,到底如何具体开展测试,如何实现参数化,如何实现判定呢?下面,我们来看看Java应用程序的测试框架吧. 当 ...

  4. 爬虫(二)-创建项目&应用

    一.回顾 上篇已经讲解了python-django的环境搭建,本次将继续上次的课程,开始创建项目及应用. 上篇的验证结果为: 本次将加上创建应用之后浏览器打开演示~ 二.创建项目 1)使用django ...

  5. LGOJP3952 时间复杂度

    题目链接 题目链接 题解 细心模拟题.最主要就是要细心,并且注释不要嫌多&码风要好,心态要好.思路没捋清晰之前不要动手写代码. 对于\(ERR\),用栈来存放当前的数据.然后用个\(vis\) ...

  6. P1392 取数[堆]

    题目描述 在一个n行m列的数阵中,你须在每一行取一个数(共n个数),并将它们相加得到一个和.对于给定的数阵,请你输出和前k小的取数方法. 解析 写这题完全自闭. 根本没联想起远古时期做的 P1631 ...

  7. 04 Spring的依赖注入

    依赖注入:Dependency Injection.它是 spring 框架核心 ioc 的具体实现. 我们的程序在编写时,通过控制反转,把对象的创建交给了 spring,但是代码中不可能出现没有依赖 ...

  8. Analysis of algorithms: introduction

    一系列的人物角色 Programmer,client,theoretician和blocking 学生可能会承担里面的一个或者多个角色 Running time 提出running time这个概念的 ...

  9. HDFS集群中DataNode的上线与下线

    在HDFS集群的运维过程中,肯定会遇到DataNode的新增和删除,即上线与下线.这篇文章就详细讲解下DataNode的上线和下线的过程. 背景 在我们的微职位视频课程中,我们已经安装了3个节点的HD ...

  10. Wiki with Alpha

    Problem G. Wiki with AlphaInput file: standard input Time limit: 1 secondOutput file: standard outpu ...