PostGIS是什么

1. 什么是GIS(知识地图定位)

1.1. GIS概念

地理信息系统(Geographic Information System或 Geo-Information system,GIS)有时又称为“地学信息系统”。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。

位置与地理信息既是LBS的核心,也是LBS的基础。一个单纯的经纬度坐标只有置于特定的地理信息中,代表为某个地点、标志、方位后,才会被用户认识和理解。用户在通过相关技术获取到位置信息之后,还需要了解所处的地理环境,查询和分析环境信息,从而为用户活动提供信息支持与服务。

地理信息系统(GIS,Geographic Information System)是一门综合性学科,结合地理学与地图学以及遥感和计算机科学,已经广泛的应用在不同的领域,是用于输入、存储、查询、分析和显示地理数据的计算机系统,随着GIS的发展,也有称GIS为“地理信息科学”(Geographic Information Science),近年来,也有称GIS为"地理信息服务"

在这里插入图片描述

1.1. 传统GIS平台

1.1.1. ArcGIS和ESRI

ArcGis是“计算机制图”应用,包含了全球范围内的底图、地图数据、应用程序,以及可配置的应用模板和开发人员使用的 GIS 工具和 API,可用于创建 Web 地图、发布GIS服务、共享地图、数据和应用程序,以及管理组织的内容和多个用户。

1.1.1.1. ESRI公司

美国环境系统研究所公司(Environmental Systems Research Institute, Inc. 简称ESRI公司)成立于1969年,总部设在美国加州RedLands市,是世界最大的地理信息系统(Geographic Information System GIS)技术提供商。

在这里插入图片描述

  • 技术人员可以关注ESRI的github:https://github.com/Esri

在这里插入图片描述

1.1.1.2. 评价
  1. 从某种意义上ArcGIS就是GIS
  2. 最全名最工业实现标准最多的商业GIS软件
  • ArcGIS Desktop
  • ArcGIS Server
  • ArcGIS Engine
  • City Engine
  1. 最大的原罪就是他是美国的

1.1.2. SuperMap GIS和超图

SuperMap GIS 是超图软件研发的面向各行业应用开发、二三维制图与可视化、决策分析的大 型 GIS 基础软件系列,包含云 GIS 服务器、边缘 GIS 服务器、端 GIS 以及在线 GIS 平台等多种软 件产品。

1.1.2.1. 超图

北京超图软件股份有限公司是全球第三大、亚洲最大的地理信息系统(GIS)软件厂商,主要从事地理信息系统相关软件技术研发与应用服务。

1.1.2.2. 评价
  1. 国内最完善的GIS平台,可以平替ArcGIS
  2. 与ArcGIS在细节上有着差距

1.1.3. QGIS

Quantum GIS(QGIS)是相当友善的开源地理信息系统,使用GNU(General Public License)授权,属于 Open Source eospatial Foundation(OSGeo)的官方计划。在 GNU 这个授权下,开发者可以自行检阅与调整程序代码,并保障让所有使用者可以免费且自由地修改程序。

QGIS 的目标是成为一个使用简单的 GIS,提供了常见的功能与图征。借着核心图征提供基本功能与附加组件(Python 或 C++)持续地扩充,让使用者可以浏览、管理、编辑、分析数据以及制图。

QGIS 是一群自愿者所开发的项目,欢迎全球使用者或开发者将程序代码的缺陷、修复、报告以及提供文件等贡献。它是由热心的使用者和开发社群所维护的。它提供了交互式的邮件列表,以及透过网络管道传达给其他用户与开发人员帮忙与建议。另外,它也提供商业定制化开发。

  • github地址:https://github.com/qgis/QGIS

1.2. 数据类型

在数据存储中,存储GIS(地理信息系统)数据的存储介质有

  • Shapefile,简称shp文件
  • MDB
  • GDB
  • ArcSDE
    • ArcSDE for Oracle
    • ArcSDE for SqlServer
    • ArcSDE for Postgresql
  • Oracle Spatial
  • Postgresql 的 PostGIS

一般而言,本地文件使用shp文件,对于共享服务器存储时使用ArcSDE、PostGIS。在PostGIS出来之前,大家都是使用Oracle Spatial。

而在存储介质中对于空间数据类型划分为:

  • 基本空间数据类型
    • 点、多点
    • 线、多线
    • 面、多面
  • 栅格数据

1.2.1. 基本空间数据类型

在这里插入图片描述

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

WKT、WKB和GeoJson表达点线面

1.2.2. 栅格数据类型

在这里插入图片描述

1.2.2.1. 栅格数据类型
  • .tiff
  • ERDAS IMAGINE (.img)
  • 卫星影像
  • DEM和DOM

1.3. 空间参考

1.3.1. 空间参考使用历史转变

新中国按时间顺序使用的空间参考为:

  • 北京54
  • 西安80
  • CGCS2000

具体可以参见北京54、西安80和CGCS2000

一言以蔽之,新中国由于政策和科学技术的原因使用了北京54;西安80是将大地原点设在中国中部陕西省泾阳县永乐镇的空间参考,同时在这个时候确定了1985国家高程基准;而走入新世纪,为了满足科研、航空、航天、航海以及国防建设我们采用了CGCS2000空间参考。

1.3.2. 常用空间参考

  • WGS84坐标系:即地球坐标系,国际上通用的坐标系。
  • GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后的坐标系。高德地图
  • BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系。百度独有
  • Web墨卡托坐标系

1.3.3. 空间参考中名词拾遗(坐标系统、空间参考、投影、基准面、椭圆体)

具体可以参见:空间参考中名词拾遗(坐标系统、空间参考、投影、基准面、椭圆体)

1.3.3. 为什么要进行投影

在上述表达中我们基本上描述的均为经纬度的,也就是地理坐标系,地图单位通常为,投影坐标系 (Projected Coordinate System)平面坐标系统地图单位通常为 ,也称非地球投影坐标系统(notearth),或者是平面坐标。

在这里插入图片描述

  • 地球是三维的
  • 地图(屏幕)是二维的
  • 地理坐标系统是在三维(基准面)上的定位方法
  • 投影使得三维转成二维
  • 三维转成二维会产生变形

在这里插入图片描述

  • 一般而言,使用相同椭球体的投影坐标系统和经纬度坐标系统是可以相互转换的,而对于两种椭球体的坐标系统需要建立坐标转换进行数学基础的转换,具体表现为,一4参,7参,二节点坐标的变化。

在一些特殊的城市,在使用投影坐标系统是往往有地方坐标系统,比如北京,原因是因为跨带

2. Postgresql中的PostGIS

2.1. 什么是PostGIS

PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing location queries to be run in SQL.

PostGIS是PostgreSQL对象关系数据库的空间数据库扩展器。它增加了对地理对象的支持,允许在SQL中运行位置查询。

在这里插入图片描述
在这里插入图片描述

  1. PostGIS是在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力的开源空间数据库,空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。

  2. 它是PostgreSQL的扩展插件,在PostgreSQL的core(存储、检索、事务等)层之上实现GIS层的功能,它不能独立于PostgreSQL运行。

2.2. Postgis解决什么问题,为什么选择PostGIS

  • Postgresql本身是最先进的开源RDBMS(没有之一),是最稳定成熟的RDBMS之一(流行度和社区成熟度比不上MySQL)

  • PostGIS是最成熟,功能最丰富的免费GIS数据库(没有之一),只有收费的Oracle和SQL Server(他们都有GIS版)才能与之媲美,MySQL的GIS功能通常不能拿来和它比

  • PostGIS本质上还是数据库,使用SQL操作,可以满足你更新频繁、和其它筛选条件联合使用的要求

  • 结合postgresql FTS扩展(Full Text Search),不仅可以根据性别、年龄、LBS信息搜索,更可以和模糊关键词搜索联合起来

  • Postgresql也可以做集群、复制、高可用

2.3. Postgis与ArcSDE的关系

2.3.1. Postgis与ArcSDE的关系?

要回答这个问题,先得明白ArcSDE是什么。

在这里插入图片描述

ArcSDE是ESRI提供的一项技术,可以访问和管理存储在关系型数据库中的空间数据。

2.3.1.1. 两者的相同点
  • 都可以作为空间数据库的实现;
  • 都遵循OGC SFSQL以及ISO SQL/MM两个规范;
2.3.1.2. 两者的不同点
  • ArcSDE可作为不同关系型数据库的空间数据引擎(SDE即spatial data engine),Postgis不可以;
  • ArcSDE可在不同关系型数据库中实现空间数据库,Postgis只能在PostgreSQL上实现空间数据库。

2.4. Postgis包含了哪些内容?遵循什么规范?

Postgis在PostgreSQL基础上,实现了空间数据类型、空间索引和空间函数。它所实现的这些内容,遵循了两个规范:OGC SFSQL以及ISO SQL/MM。

2.4.1. OGC SFSQL规范

OGC:它是一个国际标准组织,成立于1994年,是一个由GIS厂商、计算机厂商、数据库厂商、美国联邦机构、标准组织以及学术界等部门代表组成的公益性行业协会。致力于实现地理空间数据与地理信息处理资源的全面集成,通过信息基础设施,广泛使用商业化的、可互操作的地理信息处理软件。

在这里插入图片描述
在这里插入图片描述

2.4.2. SQL/MM标准

SQL/MM是ISO(International Standard Organization,国际标准化组织)提出的标准,SQL/MM第三部分空间定义了矢量数据存储与检索的相关标准,解释了基于这些数据类型如何使用存储、获取和处理空间数据。

SQL-MM Part3定义大量插值曲线类型来扩展SQL规范定义的简单要素类型。

在这里插入图片描述

2.4.3. PostGIS的扩展

  • 扩展EWKT、EWKB

在这里插入图片描述

从本质上来说,方便数据的统一管理,为每一个存储在数据表中的图形加了一个srid(为每一个图形增加了空间参考),而在同一个数据表(表模式)下空间参考是一致的,为后续的数据存储、数据分析特别是空间参考定义一致的数学基础。

  • 扩展GIS函数

在这里插入图片描述

方便postgis的一些新特性的展现,以及新算法和技术的实现。

3. PostGIS的基本使用

3.1. 使用扩展

CREATE EXTENSION postgis;

创建扩展之后在数据库函数中将会出现postgis类型,也就是可以在Postgresql中使用几何类型,并可以使用postgis的函数操作、分析几何图形。

3.2. 数据读取

根据前面的OGC标准我们可以使用WKT、WKB、GeoJson来进行数据的存储通信,即不同平台、数据库的交换标准,在PostGIS的体现为以下函数。

在这里插入图片描述

一般而言使用最多的无非

---------------读取wkt字符串为geometry---------------:
ST_GeomFromText(ST_GeometryFromText)

---------------将geometry转化为不同数据标准格式---------------:
---转换为wkt
ST_AsText
---转换为geojson
ST_AsGeoJSON

3.3. 操作符

在这里插入图片描述

  1. &&
    A && B: 当二维A范围覆盖二维B范围时,返回真。
  1. &&&
    A &&& B: 当三维A范围覆盖三维B范围时,返回真。
  1. &<
    A&<B : A范围覆盖B范围或A范围在B范围左侧时,返回真。
  1. &<|
    A&<|B :  当A范围覆盖B范围或A范围在B范围下方,返回真。
  1. =
    A=B : A范围=B范围时,返回真。
  1. ~
    A~B :A范围包含B范围时,返回真。
  1. <->
    A<->B :   返回两点之间的距离。为了点或点检查它使用浮点精度(相对于双精度的基础几何点)。对于其他几何类型之间的距离返回浮点边界框。用于做距离排序和最近邻法。
  1. <#>
    A<#>B :返回2个几何图形边界框之间的距离。对于点/点检查它的几乎一样的距离(虽然可能不一样,因为这个边界框是浮点精度和几何图形是双精度)。用于做最短距离和查找邻接边距离等。

3.4. 基于9交(DE-9IM)模型的空间关系

空间关系中文名称OGC标准解释
Contains包含一个几何图形的内部完全包含了另一个几何图形的内部和边界。
CoveredBy覆盖一个几何图形被另一个几何图形所包含,并且它们的边界相交。Point和MultiPoint不支持此空间关系,因为它们没有边界。
Crosses交叉一个几何图形的内部和另一个几何图形的边界和内部相交,但是它们的边界不相交。
Disjoint分离两个几何图形的边界和内部不相交。
EnvelopeIntersects外包矩形相交两个几何图形的外接矩形相交。
Equal相等两个几何图形具有相同的边界和内部。
Inside内部一个几何图形在另一个几何图形的内部,但是和它的边界不接触。
Intersects相交两个几何图形没有分离(Non-DisJoint)。
Overlaps重叠两个几何图形的边界和内部相交(Intersect)。
Touch接触两个几何图形的边界相交,但是内部不相交。
Within包含于一个几何图形的内部和边界完全在另一个几何图形的内部。

https://qlygmwcx.blog.csdn.net/article/details/122762041?spm=1001.2014.3001.5502

在这里插入图片描述
在这里插入图片描述

3.4.1. 翻译资源

总体资源

  1. PostGIS的Spatial Relationships and Measurements-空间关系与测量
  2. PostGIS的Spatial Relationships and Measurements 空间关系与测量:2
  3. PostGIS的Spatial Relationships and Measurements 空间关系与测量:3
  4. PostGIS的Spatial Relationships and Measurements 空间关系与测量:4
  5. PostGIS的Spatial Relationships and Measurements 空间关系与测量:5
  6. PostGIS的Geometry Processing 几何处理_1 ST_Buffer&&ST_BuildArea
  7. [PostGIS的Geometry Processing 几何处理2(ST_ClipByBox2D、ST_Collect、ST_ConcaveHull、ST_ConvexHull)](PostGIS的Geometry Processing 几何处理2(ST_ClipByBox2D、ST_Collect、ST_ConcaveHull、ST_ConvexHull))
  8. Geometry Processing 几何处理 3 ST_CurveToLine、ST_DelaunayTriangles
  9. Geometry Processing 几何处理 4 ST_Difference、ST_Dump、ST_DumpPoints、ST_DumpRings

3.5. 空间关系索引

GiST 的意思是通用的搜索树(Generalized Search Tree)。 它是一种平衡的,树状结构的访问方法,在系统中起一个基础模版的作用,可以使用它实现任意索引模式。B+/-trees,R-trees 和许多其它的索引模式都可以用 GiST实现。

CREATE INDEX idx_my_table_geom ON my_table USING gist(geom gist_geometry_ops);
  1. 从数据库库索引说到空间数据索引
  2. 为什么要使用空间索引
  3. 空间数据:格网索引
  4. 空间数据结构(四叉树、八叉树、BVH树、BSP树、k-d树)
  5. 高效的多维空间点索引算法 — Geohash 和 Google S2
  6. 矢量数据空间索引之R树索引
  7. GIST索引

3.6. 样例说明

  1. geotools导入PostGIS同时使用ArcGIS加载,查看空间数据

  2. Java导入shapefile到postgis,提升geotools导入效率

  3. 使用PostGIS求两个要素类的相交部分

  4. PostGIS实现(大数据量,大图斑)图层间相交工具

  5. 使用PostGIS对数据做拓扑抽稀

  • 47
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论
Create and manage spatial data with PostGIS Key Features Import and export geographic data from the PostGIS database using the available tools Maintain, optimize, and fine-tune spatial data for long-term viability Utilize the parallel support functionality that was introduced in PostgreSQL 9.6 Book Description PostGIS is a spatial database that integrates the advanced storage and analysis of vector and raster data, and is remarkably flexible and powerful. PostGIS provides support for geographic objects to the PostgreSQL object-relational database and is currently the most popular open source spatial databases. If you want to explore the complete range of PostGIS techniques and expose related extensions, then this book is for you. This book is a comprehensive guide to PostGIS tools and concepts which are required to manage, manipulate, and analyze spatial data in PostGIS. It covers key spatial data manipulation tasks, explaining not only how each task is performed, but also why. It provides practical guidance allowing you to safely take advantage of the advanced technology in PostGIS in order to simplify your spatial database administration tasks. Furthermore, you will learn to take advantage of basic and advanced vector, raster, and routing approaches along with the concepts of data maintenance, optimization, and performance, and will help you to integrate these into a large ecosystem of desktop and web tools. By the end, you will be armed with all the tools and instructions you need to both manage the spatial database system and make better decisions as your project's requirements evolve. What you will learn Import and export geographic data from the PostGIS database using the available tools Structure spatial data using the functionality provided by a combination of PostgreSQL and PostGIS Work with a set of PostGIS functions to perform basic and advanced vector analyses Connect PostGIS with Python Learn to use programming frameworks around PostGIS Maintain, optimize, and fine-tune spatial data for long-term viability Explore the 3D capabilities of PostGIS, including LiDAR point clouds and point clouds derived from Structure from Motion (SfM) techniques Distribute 3D models through the Web using the X3D standard Use PostGIS to develop powerful GIS web applications using Open Geospatial Consortium web standards Master PostGIS Raster Who This Book Is For This book is for developers who need some quick solutions for PostGIS. Prior knowledge of PostgreSQL and spatial concepts would be an added advantage. Table of Contents Chapter 1. MOVING DATA IN AND OUT OF POSTGIS Chapter 2. STRUCTURES THAT WORK Chapter 3. WORKING WITH VECTOR DATA THE BASICS Chapter 4. WORKING WITH VECTOR DATA ADVANCED RECIPES Chapter 5. WORKING WITH RASTER DATA Chapter 6. WORKING WITH PGROUTING Chapter 7. Into the Nth Dimension Chapter 8. POSTGIS PROGRAMMING Chapter 9. POSTGIS AND THE WEB Chapter 10. MAINTENANCE OPTIMIZATION AND PERFORMANCE TUNING Chapter 11. USING DESKTOP CLIENTS Chapter 12. Introduction to Location Privacy Protection Mechanisms
SDIO是一种用于连接多种设备的接口标准,包括Wi-Fi等无线网络设备。SDIO接口Wi-Fi驱动程序是用来管理和控制SDIO模块连接Wi-Fi设备的程序。Wi-Fi驱动程序通常是由设备制造商或操作系统供应商提供的,它们可以针对特定的SDIO模块和Wi-Fi设备进行定制。驱动程序管理SDIO接口与Wi-Fi设备的通信,控制数据流和网络连接以及提供对Wi-Fi设备的配置和监视功能。 在SDIO接口中,Wi-Fi设备一般作为一个SDIO卡出现,并通过SDIO总线与主处理器通信。因此,SDIO接口Wi-Fi驱动程序需要充分考虑SDIO总线和Wi-Fi设备之间的交互,并提供相应的操作和处理流程。常见的SDIO接口Wi-Fi驱动程序包括驱动层和协议层两部分。驱动层主要负责设备驱动程序的加载和卸载,以及控制SDIO总线与Wi-Fi设备之间的基本交互。协议层则实现与Wi-Fi设备之间的高级通信协议和数据传输,如TCP/IP协议栈、接入控制和传输协议等。 SDIO接口Wi-Fi驱动程序的设计和实现需要考虑多方面的因素,如SDIO总线的带宽和时序控制、Wi-Fi设备的固件和驱动程序兼容性、网络连接和性能要求等。通常需要经过严格的测试和优化才能实现良好的性能和稳定性。 总之,SDIO接口Wi-Fi驱动程序是一项关键技术,它的实现对Wi-Fi设备的性能和可靠性都有着重要的影响。需要专业的技术团队和优秀的开发工具支持,才能实现高品质的SDIO接口Wi-Fi驱动程序。
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自己的九又四分之三站台

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值