![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
postgis
文章平均质量分 92
潘小磊
功不唐捐,玉汝于成
展开
-
PostGIS教程学习二十二:使用触发器追踪历史编辑操作
生产环境下数据库的一个常见要求是能够跟踪用户编辑数据的历史:数据在两个日期之间是如何变化的,是谁操作的,以及它们哪些内容变化了?一些GIS系统通过在客户端接口中包含更改管理功能来跟踪用户的编辑数据操作,但这增加了客户端编辑工具的复杂性。使用数据库和数据库的触发器机制,可以对任何表进行编辑历史跟踪,从而让客户端保持对编辑表的简单“直接编辑”(客户端不用负责追踪编辑历史的功能,只负责CRUD)。历史跟踪的工作方式是增加一个记录编辑历史的历史表,为每个编辑操作保留历史记录。原创 2024-02-01 10:48:20 · 1015 阅读 · 0 评论 -
PostGIS学习教程二十一:最近领域搜索
一个常见的空间查询是:“距离一个要素最近的是哪些要素?与距离查询不同,最近邻域搜索(Nearest Neighbour Search)没有限制候选几何图形在什么范围之内,任何距离的要素都将被接受,只要它们是最近的。这引出了关于传统的索引辅助查询的一个问题,这些查询需要一个搜索框,因此需要某种测量值来限定这个框。执行最近邻域搜索的简单方法是按与要查询的几何图形的距离对候选表进行排序,然后获取最小距离对应的表记录。原创 2024-02-01 10:22:24 · 833 阅读 · 0 评论 -
PostGIS学习教程二十:3-D
对于3-D和4-D几何图形,额外的维度将作为几何图形中每个顶点的额外坐标添加,并且几何图形类型将得到增强,以指示如何解译额外的维度信息。构建索引后,可以在查询中使用&&&索引操作符,&&&和&&是相同的语义——边界框相交——区别在于,&&&使用几何图形的所有维度来应用这个语义。一般来说,N-D索引只比2-D索引执行速度稍慢一些,所以只使用N-D索引,因为N-D查询将提高查询的多维度选择性。要使用N-D索引搜索nyc_streets表,只需将&&2-D索引运算符替换为&&&3-D索引运算符。原创 2024-01-09 22:14:05 · 1247 阅读 · 0 评论 -
PostGIS教程学习十九:基于索引的聚簇
数据库只能以从磁盘获取信息的速度检索信息。小型数据库将完全位于于RAM缓存(内存),并摆脱物理磁盘访问速度慢的限制。但是对于大型数据库,对物理磁盘的访问将限制数据库的信息检索速度。数据是偶尔写入磁盘的,因此存储在磁盘上的有序数据与应用程序访问或组织该数据的方式之间不需要存在任何关联。加速数据访问的一种方法是确保可能在同一结果集中一起被检索的记录位于硬盘上的相近物理位置。这就是所谓的"聚簇(clustering)"。原创 2024-01-09 22:01:35 · 1007 阅读 · 0 评论 -
PostGIS学习教程十八:维数扩展的9交集模型
维数扩展的9交集模型-Dimensionally Extended 9-Intersection Model”(DE9IM)是一个用于建模两个空间对象如何交互的框架。首先,每个空间对象都具有:内部(interior)边界(boundary)外部(exterior)内部是以环为边界的里面的那一部分;边界是环本身;外部是边界外的一切。对于线性要素,内部、边界和外部不太为人所知:内部是以端点为界限的线的那一部分;边界是线性要素的端点;外部是平面中除内部和边界外的所有其他部分。原创 2024-01-05 21:36:30 · 1144 阅读 · 0 评论 -
PostGIS学习教程十七:线性参考
线性参考是一种表示要素的方法,这些要素可以通过引用一个基本的线性要素来描述。使用线性参照建模的常见示例包括:公路资产,这些资产使用公路网络沿线的英里来表示。道路养护作业,指在一对英里测量之间沿着公路网发生的作业。水产库存,其中鱼的存在位置被记录为距离上游的一段位置之间。河流的水文特征,以河流的某一个点到另一个点作为参考。线性参考模型的优点是,从属空间观测信息不需要与基准空间观测信息分开记录,对基础观测信息进行更新时,从属观测信息将自动更新从而追踪新几何图形。原创 2024-01-05 21:23:20 · 997 阅读 · 1 评论 -
PostGIS学习教程十六:几何图形的相等
在处理几何图形时确定相等可能很困难。PostGIS支持三种不同的函数与操作符,可以用来确定不同级别的相等。为了说明这些函数和操作符,我们将使用以下多边形。原创 2023-12-26 22:16:29 · 211 阅读 · 0 评论 -
PostGIS学习教程十五:几何图形的有效性
对于多边形来说,有效性是最重要的,因为多边形定义了有界区域,需要很好的结构。线串非常简单,不会无效,点也不会无效。多边形有效性的一些规则很明显,而另一些规则是任意的。多边形的环必须闭合内环必须位于外环的内部环不能自相交(它们不能相互接触,也不能交叉)除了在某个点接触,环不能与其他环接触最后两条规则属于任意类别。定义多边形的其他规则也是自洽合理的,但是上面的规则是PostGIS所遵循的OGC SFSQL标准所定义的多边形有效性的规则。原创 2023-12-26 22:07:28 · 417 阅读 · 0 评论 -
PostGIS学习教程十三:几何图形创建函数
目前我们看到的所有函数都可以处理已有的几何图形并返回结果:分析几何图形(ST_Length(geometry), ST_Area(geometry))几何图形的序列化(ST_AsText(geometry), ST_AsGML(geometry))选取几何图形的某个部分(ST_RingN(geometry, n))true/false测试(ST_Contains(geometry, geometry), ST_Intersects(geometry, geometry))原创 2023-12-11 22:55:32 · 334 阅读 · 0 评论 -
PostGIS学习教程十二:地理
坐标为"地理(geographics)“形式或者说是” 纬度(latitude)/经度(longitude)"形式的数据非常常见。与Mercator(墨卡托)、UTM(通用横轴墨卡托)、Stateplane中的坐标不同,地理坐标不是笛卡尔平面坐标(Cartesian coordinates)。地理坐标并不表示平面上与原点的线性距离,相反,这些球坐标描述了地球上的角坐标。在球坐标中,点由该点与参考子午线(经度)的旋转角度和该点与赤道的角度(纬度)指定。原创 2023-12-11 22:43:47 · 424 阅读 · 0 评论 -
PostGIS学习教程十一:投影数据
ST_SRID(geometry) —— 查看空间数据的坐标系ST_SetSRID(geometry,SRID) —— 设置空间数据的坐标系UpdateGeometrySRID(table_name, column_name, srid) —— 更新空间数据表的坐标系ST_Transform(geometry, srid) —— 转换空间数据的坐标系。原创 2023-12-07 21:47:53 · 337 阅读 · 0 评论 -
PostGIS学习教程十:空间索引
回想一下,空间索引是空间数据库的三个关键特性之一。空间索引使得使用空间数据库存储大型数据集成为可能。在没有空间索引的情况下,对要素的任何搜索都需要对数据库中的每条记录进行"顺序扫描"。索引通过将数据组织到搜索树中来加快搜索速度,搜索树可以快速遍历以查找特定记录。空间索引是PostGIS的最大价值之一。在前面的示例中,构建空间连接需要对整个表进行相互比较。这样做的代价很高:连接两个各包含10000条记录的表(每个表都没有索引)将需要进行100000000次比较;原创 2023-12-05 22:25:14 · 346 阅读 · 0 评论 -
PostGIS学习教程九:空间连接
空间连接(spatial joins)是空间数据库的主要组成部分,它们允许你使用空间关系作为连接键(join key)来连接来自不同数据表的信息。我们认为“标准GIS分析”的大部分内容可以表示为空间连接。在上一节中,我们通过两个步骤探索了空间关系:首先,我们提取了’Broad St(宽街)'的地铁站点;然后,我们用这个地铁站点来问更多的问题,如"'Broad St’站位于哪个社区?我们本可以把每个地铁站都连接到它所在的社区,但在这种情况下,我们只想知道其中一个地铁站的信息。原创 2023-12-05 22:12:19 · 378 阅读 · 0 评论 -
PostGIS学习教程八:空间关系
到目前为止,我们只使用了测量(ST_Area、ST_Length)、序列化(ST_GeomFromText)或者反序列化(ST_AsGML)几何图形(geometry)的空间函数。这些函数的共同之处在于它们一次只能处理一个几何图形。空间数据库之所以强大,是因为它们不仅能存储几何图形,而且还能够分析几何图形之间的关系。诸如"哪一个是离公园最近的自行车位?"或者"地铁线路和街道的交叉路口在哪里?"这样的问题,只能通过比较、分析表示自行车位、街道和地铁线路的几何图形来回答。原创 2023-11-30 21:53:53 · 739 阅读 · 0 评论 -
PostGIS学习教程七:关于几何图形的练习
为了运行ST_NumInteriorRings(),我们需要将MultiPolygon几何图形转换为简单的多边形,因此,我们使用ST_GeometryN()从每个集合中提取第一个多边形。使用多多边形允许只有一种几何图形类型的表同时存储单(single-)几何图形和多(multi-)几何图形,而不必使用GeometryCollection类型。③纽约市(New York City)有多少个census blocks(人口普查块)多边形里有孔洞(内环)?(提示:空间数据的测量单位是米,每公里有1000米)原创 2023-11-15 22:09:29 · 452 阅读 · 0 评论 -
PostGIS学习教程六:几何图形(geometry)
在前面的章节中,我们已经往数据库中加载了数据,现在让我们来先看一些简单的例子。在pgAdmin中,再次选择nyc数据库并打开SQL查询工具。将下面的SQL代码粘贴到pgAdmin SQL Editor窗口中(删除默认情况下可能存在的任何文本),然后执行。上面的示例创建了一个表(geometries),然后向该表中插入5个几何图形数据(geometry):一个点(POINT)一条线(LINESTRING)一个多边形(POLYGON)原创 2023-11-15 16:45:09 · 2158 阅读 · 0 评论 -
PostGIS学习教程五:简单的SQL语句
SQL,或"Structured Query Language-结构化查询语言",是对关系数据库进行查询数据和更新数据的一种方法。查看PostGIS的版本信息。在前面的章节中,我们已经将数据加载到数据库中,现在让我们使用SQL来查询数据!例如:“查看纽约市所有社区的名字?通过单击SQL按钮在pgAdmin中打开SQL查询窗口:并点击执行查询按钮:查询将运行几毫秒并返回129个结果:但这个过程中到底发生了什么?原创 2023-11-15 09:12:55 · 296 阅读 · 0 评论 -
PostGIS学习教程四:数据
教程的数据是有关纽约市的四个shapefile文件和一个包含社会人口经济数据的数据表。在前面一节我们已经将shapefile加载为PostGIS表,在后面我们将添加社会人口经济数据。下面描述了每个数据集的记录数量和表属性。这些属性值和关系是我们以后分析的基础。要在pgAdmin中浏览表的性质或属性,请在高亮显示的表上单击鼠标右键,然后选择属性(property)。原创 2023-11-14 20:31:55 · 224 阅读 · 0 评论 -
PostGIS学习教程三:加载空间数据
你可能会问 —— “shapefile是什么?一个"shapefile"通常指带有.shp、.shx、.dbf和其他扩展名且前缀名称一致的文件集合。例如上面的nyc_census_blocks由以下几个文件组成:一个shapfile必须有的文件:.shp —— 存储地理要素的几何信息.shx —— 存储要素几何图形的索引信息.dbf —— 存储地理要素的属性信息(非几何信息)可选文件包括:.prj —— 存储空间参考信息,即地理坐标系统信息和投影坐标系统信息。原创 2023-11-14 20:12:14 · 427 阅读 · 0 评论 -
PostGIS学习教程二:PostGIS安装和创建空间数据库
在安装PostGIS前首先必须安装PostgreSQL,然后在安装好的Stack Builder中选择安装PostGIS组件。PostgreSQL安装文件下载地址是https://www.enterprisedb.com/downloads/postgres-postgresql-downloads这里使用的PostgreSQL版本是9.6。双击下载的文件,所有设置都使用默认设置即可,只是需要设置超级用户postgres的密码。原创 2023-11-13 14:02:12 · 837 阅读 · 0 评论 -
PostGIS学习教程一:PostGIS介绍
PostgreSQL是一个强大的对象关系数据库管理系统(ORDBMS)。它是在BSD风格的许可下发布的,因此是自由和开放源代码的软件。和许多其他开源程序一样,PostgreSQL不是由任何一家公司控制、运维的,而是有一个由众多开发人员和公司组成的全球社区来开发它。PostgreSQL从一开始就考虑到类型扩展 —— 能够在运行时添加新的数据类型、函数和访问方法的机制。正因为如此,PostGIS扩展可以由单独的开发团队开发,但仍然可以非常紧密地集成到PostgreSQL数据库中。原创 2023-11-13 10:29:41 · 742 阅读 · 0 评论