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. MySQL Case--应用服务器性能瓶颈导致慢SQL

    在分析优化慢SQL时,除考虑慢SQL对应执行计划外,还需要考虑 1. 慢SQL发生时间点的数据库服务器性能 2.慢SQL发生时间点的应用程序服务器性能 3. 慢SQL发生时间点数据库服务器和应用服务器 ...

  2. ansible之基础篇(二)

    软件相关模块 yum rpm和yum的区别 rpm:redhat package manager yum 可以解决依赖关系 yum 源配置 使用yum下载时需要先下载epel [epel] name= ...

  3. mysqldump 备份与恢复数据库

    备份数据库 mysqldump -u root -plvtao test > /home/bak.sql 数据库还原,常用source 命令登陆 mysql -u root -p mysql&g ...

  4. hive介绍及架构设计

    hive介绍及架构设计 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们知道MapReduce和Spark它们提供了高度抽象的编程接口便于用户编写分布式程序,它们具有极好的扩展性 ...

  5. 微信小程序分享朋友圈 长海报 canvas 动态高度计算

    业务场景 在微信中 小程序无法分享到朋友圈,目前大部分的解决方案都是,canvas动态绘制 生成图片后,保存到用户相册,用户进行分享照片到朋友圈,朋友圈打开图片后识别二维码进入小程序,达到分享目的 g ...

  6. ASP.NET Core 2.2 项目升级至 3.0 备忘录

    将 ASP.NET Core 2.2 迁移至 ASP.NET Core 3.0 需要注意的地方记录在这篇随笔中. TargetFramework 改为 netcoreapp3.0 <Target ...

  7. DateTimeFormatter LocalDateTime 工具类

    import java.text.SimpleDateFormat; import java.time.Duration; import java.time.Instant; import java. ...

  8. Vue路由实现页面跳转的两种方式(router-link和JS)

    Vue.js 路由可以通过不同的 URL 访问不同的内容,实现多视图的单页 Web 应用 1.通过 <router-link> 实现 <router-link> 组件用于设置一 ...

  9. 32位JVM和64位JVM的最大堆内存分别是多数?32位和64位的JVM,int类型变量的长度是多数?

    理论上说上 32 位的 JVM 堆内存可以到达 2^32,即 4GB,但实际上会比这个小很多.不同操作系统之间不同,如 Windows 系统大约 1.5 GB,Solaris 大约 3GB.64 位 ...

  10. mui真机调试时无法查找到手机

    在做mui的真机调试时手机查找不到手机,有可能是你的  adb interface 驱动  版本过低,先下载 或自行百度 http://www.onlinedown.net/soft/1164054. ...