![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Postgis
文章平均质量分 59
丷丩
什么也不想说。
展开
-
在PostGIS中计算一个面要素表中的重叠部分(Find overlaps among polygons in PostGIS)
在PostGIS中有一张面要素表,需要检查该表中的哪些地方有重叠。其中重叠定义为这些多边形的面状交集。我们现在来计算出这些区域。原创 2024-06-03 10:47:14 · 340 阅读 · 0 评论 -
在PostGIS中检查孤线(Find isolated lines in PostGIS)
本文介绍在PostGIS中的线要素点,通过函数计算指定线要素表中的孤线,并计算最接近的纠偏位置。在PostGIS中有一张线要素表,需要检查该表中的孤线,并且进行自动纠正的计算。获取自动修复的容差,如果偏差大于该阈值,则不做自动修复的计算。其中孤线定义为两端端点都不在任何其他线的顶点上。我们可以直观看出B和D属于孤线。原创 2024-05-30 13:22:30 · 487 阅读 · 0 评论 -
在PostGIS中计算没有在线上的点(Calculate points that do not on the line in PostGIS)
在项目业务需求中需要计算出一些点没有落在线上,比如电网项目中的电杆点位必须落在点线传输路线上。 电杆的数据存储在专门的一张PostGIS空间表中,传输线路以矢量线段的方式存储在另一张线空间表。需要检查计算出那些没有落在传输线路上的电杆。原创 2024-05-24 09:54:16 · 162 阅读 · 0 评论 -
在PostGIS中计算线、面数据集是否自相交(Calculate whether Line or Polygon datasets self intersect in PostGIS)
函数检查出来的结果有一种是Self-intersection,但是对于线数据集并不能判断出自相交的情况(项目中的要求是线对象的线段之间有相交的情况)。最近在开发关于空间数据拓扑的检查工作,检查空间线或面数据是否自相交。数据存储在PostGIS中。返回值为:正常检查完成返回结果表名称,否则返回"-1";函数进行计算,如果非自相交的线,则比有。进行检查,对于线对象,则采用。同时将检查结果写入记录表中。通过PostGIS中的。所以对于面对象,采用了。,否则认为是自相交。目前支持的几何类型为。,其他类型未做验证。原创 2024-05-23 10:00:35 · 479 阅读 · 0 评论 -
在PostGIS中计算点数据集的最小外包凸多边形等(Calculate the minimum outer convex polygon of a point dataset in PostGIS)
在PostGIS中计算点数据集的最小外包凸多边形等原创 2024-04-16 09:23:43 · 231 阅读 · 0 评论 -
利用ogr2ogr从PostGIS中导出/导入Tab/Dxf/Geojson等格式数据
先查看下当前gdal支持的全部格式,部分gdal版本可能不支持PostGIS。如出现PostgreSQL表名支持。原创 2023-11-27 10:22:17 · 845 阅读 · 0 评论 -
在PostGIS中进行点数据的等值线提取(Extracting contour lines from point data in PostGIS)
介绍在PostGIS中从点数据提取等值线。原创 2023-11-27 10:00:47 · 609 阅读 · 0 评论 -
在PostGIS中进行点数据的栅格化(Rasterization of Point Data in PostGIS)
介绍在PotGIS中将点数据转换为栅格数据。原创 2023-11-20 09:09:23 · 598 阅读 · 1 评论 -
在Postgresql中进行关键字查找
方法类似与近似值计算,所如果被查找列如果比较长的情况下,查找结果可能不尽如人意。在Postgresql中通过关键字查询,一般情况下,利用like语句。使用like查询包含"夕阳"关键字的记录,语句可能如下。但是众所周知,这样的匹配率不尽如人意。默认表中的数据存储了上千万条记录。扩展进行实现更完美的关键字查询。在实际查找中,可能在。原创 2023-10-24 12:54:06 · 595 阅读 · 0 评论 -
PostGIS:计算一个二维面在三维线上的投影
上述方法只适用于地上三维对象的计算。如果是地下三维对象,应当将ST_Extrude对象的全部Z值减去高差的1/2。主要思路:将二维面对象转换为POLYHEDRALSURFACE对象。原创 2023-04-10 17:44:41 · 222 阅读 · 1 评论 -
(精华)2020年6月27日 C#类库 PostgreSqlHelper(Ado.net数据库封装)
本文转载自《https://blog.csdn.net/aa2528877987/article/details/106980804》using EFCore.Sharding;using Npgsql;using NpgsqlTypes;using System;using System.Collections;using System.Collections.Generic;using System.Data.Common;using System.Net;using System.N转载 2020-11-22 19:20:32 · 669 阅读 · 0 评论 -
PostGIS系列课程之空间约束(三)
延迟约束和完整的表级数据结构。线性网络约束从一个简单的道路网络开始。CREATE TABLE roads ( pk bigint PRIMARY KEY, name text NOT NULL, geom geometry(LineString, 3005) NOT NULL CONSTRAINT geom_no_zero_length CHECK (ST_Length(geom) > 0) CONSTRAINT geom_no_self_intersection C原创 2020-09-28 11:37:29 · 629 阅读 · 0 评论 -
PostGIS系列课程之空间约束(二)
空间数据质量通常涉及几何之间的更高阶关系。 正如强大的非空间模型将强制执行外键关系一样,空间约束可用于强制执行空间关系。触发器约束地块"地籍" 的形式,反映土地合法划分的空间层。 地籍的核心业务规则之一是,一块土地不能同时位于两个地籍中。两种不一致违反了上述原则:一个宗地与另一个宗地部分重叠,例如右下角的红色宗地。一个宗地完全包含在另一个宗地中,如左侧的红色宗地。创建一个检查规则(插入和更新时候使用):CREATE OR REPLACE FUNCTION overlapping_parc原创 2020-09-28 11:36:30 · 999 阅读 · 0 评论 -
PostGIS系列课程之空间约束(一)
约束用于确保数据库中的数据反映数据模型的假设。外键是否与相应键匹配? (REFERENCES)是否填写了必填列? (NOT NULL)唯一值列实际上是唯一的吗? (UNIQUE)是否通过其他数据质量规则? (CHECK)为什么要在数据库中而不是在应用程序层实施数据质量规则? 因为如果您在应用程序层限定所有数据,则每当添加“另一个应用程序”写入数据库时,都必须复制“所有逻辑”。如果您有幸编写了一个成功运行了超过两年的系统,那么多个写入应用程序迅速普及的可能性将达到100%。 在数据库中强制执行原创 2020-09-28 11:35:20 · 964 阅读 · 0 评论 -
PostGIS系列课程之高级空间联合
更多更复杂的联合查询在本节中,我们将对一般的空间查询做一些更复杂的事情。创建一张人口普查表我们已经在数据库中创建了一个名为nyc_census_sociodata的表。 该表包括有关纽约的有趣的社会经济数据:通勤时间,收入和受教育程度。 只有一个问题。 数据由“人口普查区域”汇总,我们没有人口普查区域空间数据!在本节中,我们将:为人口普查区创建空间表将属性数据连接到空间数据使用我们的新数据进行一些分析创建一张人口普查表通过总结blkid键的子字符串,我们可以从人口普查区块中构建更高级别原创 2020-09-26 14:29:38 · 527 阅读 · 0 评论 -
PostGIS系列课程之空间索引
空间索引回想一下,空间索引是空间数据库的三个关键功能之一。索引使使用空间数据库处理大型数据集成为可能。如果不建立索引,则对功能的任何搜索都将需要对数据库中的每个记录进行“顺序扫描”。通过将数据组织到可以快速遍历以查找特定记录的搜索树中,可以加快索引的搜索速度。空间索引是PostGIS的最大能力之一。在前面的示例中,建立空间联接需要将整个表相互比较。这可能会非常耗时:将两个10,000条记录的表连接起来,每个表没有索引将需要100,000,000个比较;使用索引的成本可能低至20,000次比较。当我原创 2020-09-26 01:51:25 · 1395 阅读 · 0 评论 -
PostGIS系列课程之空间联合
空间联接是空间数据库的基础。 它们允许通过使用空间关系作为JOIN键来组合来自不同表的信息。 我们认为的大多数“标准GIS分析”都可以表示为空间JOIN。在上一节中,我们使用两步过程探索了空间关系:首先,我们提取了Broad St的地铁站点; 然后,我们用这一点来问其他问题,例如“Broad St车站在哪个社区?”使用空间JOIN,我们可以一步一步地回答问题,检索有关地铁站及其附近的信息:SELECT subways.name AS subway_name,neighborhoods.name.原创 2020-09-26 01:50:11 · 342 阅读 · 0 评论 -
PostGIS系列课程之空间关系
本文将逐一介绍空间关系的定义及使用。空间关系PostGIS的强大功能是能够计算Geometry之间的空间关系。通过比较代表自行车位置,街道和地铁线的几何形状,可以回答诸如“距公园最近的自行车架在哪里?”或“地铁线与街道的交叉点在哪里?”之类的问题。PostGIS提供了Open Geospatial Consortium / SQL-MM标准中定义的全套空间关系功能。这些功能允许测试空间(拓扑)关系和基于几何之间的距离的关系。大多数关系函数接受两个几何作为输入,并以布尔值形式返回指定关系的值。 .原创 2020-09-24 23:21:44 · 1105 阅读 · 0 评论 -
PostGIS系列课程之投影Projection
地球不是平坦的,没有简单的方法可以将其放在平面的纸质地图(或计算机屏幕)上,因此人们想出了各种巧妙的解决方案,每种解决方案各有利弊。有些投影会保留区域,因此所有对象之间的大小都相对。其他投影像墨卡托投影一样保留角度(共形);一些预测试图找到一个好的中间混合,在几个参数上只有很小的失真。所有投影的共同点是它们将(球形)世界转换为平坦的笛卡尔坐标系,选择哪种投影取决于如何使用数据。加载nyc数据时,我们已经遇到了投影。 (回想一下令人讨厌的SRID 26918)。但是,有时需要在空间参照系之间进行转换和重.原创 2020-09-24 22:15:09 · 633 阅读 · 0 评论 -
PostGIS系列课程之Geography
坐标为“地理”或“纬度/经度”的数据非常常见。与墨卡托(Mercator),UTM或Stateplane中的坐标不同,地理坐标不是笛卡尔坐标。 地理坐标不代表在平面上绘制的距原点的线性距离。 而是,这些球坐标描述了地球仪上的角坐标。 在球坐标中,一个点由与参考子午线的旋转角度(经度)和与赤道的角度(纬度)指定。您可以将地理坐标视为近似的笛卡尔坐标,然后继续进行空间计算。但是,距离,长度和面积的测量是没有意义的。由于球坐标测量角距离,所以单位为“度”。此外,索引和真/假测试(如相交和包含)的近.原创 2020-09-24 21:55:34 · 1707 阅读 · 0 评论 -
PostGIS系列课程之PostGIS Geometries
介绍在开始处理数据之前,让我们看一些简单的例子。 继续并在控制台中执行以下SQL语句。CREATE TABLE geometries (name varchar, geom geometry);INSERT INTO geometries VALUES ('Point', 'POINT(0 0)'), ('Linestring', 'LINESTRING(0 0, 1 1, 2 1, 2 2)'), ('Polygon', 'POLYGON((0 0, 1 0, 1 1, 0 1, 0原创 2020-09-24 21:22:41 · 800 阅读 · 0 评论 -
PostGIS中的空间索引(二)
本文介绍SP-GiST索引及PostGIS中索引的使用:SP-GiST以及如何使用索引前面的文章介绍了两种索引,本文介绍SP-GiST索引及全部PostGIS中的索引使用方法。1. SP-GiST 索引SP-GiST代表“空间分区的通用搜索树”,它是索引的一种通用形式,它支持分区的搜索树,例如四叉树,k-d树和基数树(重试)。这些数据结构的共同特征是,它们将搜索空间重复地划分为不必具有相同大小的分区。除GIS索引外,SP-GiST还用于加速对多种数据的搜索,例如电话路由,ip路由,子字符串搜原创 2020-09-24 09:56:25 · 629 阅读 · 0 评论 -
PostGIS中的空间索引(一)
本文介绍如下索引:GISTBRIN索引使使用空间数据库处理大型数据集成为可能。 如果不建立索引,则对功能的任何搜索都需要对数据库中的每个记录进行“顺序扫描”。 索引通过将数据组织到可以快速遍历以查找特定记录的搜索树中来加快搜索速度。 PostgreSQL默认支持三种索引:B树索引,SP-GiST和GiST索引。B树用于可沿一个轴排序的数据。 例如数字,字母,日期。 空间数据可以沿着空间填充曲线,Z阶曲线或希尔伯特曲线进行排序。 但是,这种表示方式不允许加快常见的操作。GiST(通用搜索树)索原创 2020-09-24 09:55:24 · 1571 阅读 · 0 评论 -
PostGIS数据库中的几种复杂查询举例
本文包含以下内容:利用索引空间查询SQL示例有效地使用PostGIS需要知道哪些空间功能可用,并确保适当的索引可用以提供良好的性能。这些示例中使用的SRID 312仅用于演示。您应该使用spatial_ref_sys表中列出的REAL SRID,并使用与数据投影相匹配的REAL SRID。如果数据未指定空间参考系统,则应仔细考虑为什么没有这样做,也许应该这样做。如果是因为要建模的对象没有定义地理空间参考系统,例如分子的内部结构或尚未建造的游乐园的平面图,那很好。但是,如果已经计划了游乐园的位置原创 2020-09-24 09:22:36 · 2861 阅读 · 2 评论 -
Greenplum数据库中使用PostGIS扩展
本文包含以下内容:关于 PostGISGreenplum 数据库中的PostGIS 扩展提供PostGIS能力升级Greenplum的PostGIS扩展迁移PostGIS 1.4到2.0使用PostGIS 功能和限制1. 关于 PostGIS关于PostGIS的介绍,本文不再赘述,请参考本公众号相关专题文章。2. Greenplum 数据库中的PostGIS 扩展可从Pivotal Network网站(https://network.pivotal.io )获得Greenplum原创 2020-09-23 22:31:17 · 1291 阅读 · 0 评论 -
PostGIS中的拓扑关系及函数(二)
PostGIS提供了若干拓扑关系函数,本文介绍如下函数:1. ST_LineCrossingDirection #线之间的交叉方向2. ST_Disjoint #不相交3. ST_Equals #相等ST_LineCrossingDirection-线之间的交叉方向定义integer ST_LineCrossingDirection(geometry linestringA, geometry linestringB);说明给定2个原创 2020-09-23 21:38:20 · 878 阅读 · 0 评论 -
PostGIS中的拓扑关系及函数(一)
PostGIS提供了若干拓扑关系函数,本文介绍如下函数:1. ST_3DIntersects #相交2. ST_Contains #包含3. ST_ContainsProperly #完全包含4. ST_Covers #覆盖5. ST_CoveredBy #被覆盖6. ST_Crosses #空间相交ST_3DIntersects-相交定义boolean ST_3DIntersects( geome原创 2020-09-23 21:09:26 · 2574 阅读 · 0 评论 -
在PostGIS中表达复杂几何对象是如何定义的
PostGIS符合开放地理空间联盟(OGC)的OpenGIS规范。因此,许多PostGIS方法要求进行操作的几何既简单又有效。例如,计算在多边形外部定义了孔的多边形的面积,或者根据非简单边界线构造多边形是没有意义的。根据OGC规范,简单几何是没有异常几何点(例如自相交或自相切)的几何,主要指0或1维几何(即[MULTI] POINT,[MULTI] LINESTRING)。另一方面,几何形状有效性主要是指二维几何形状(即[MULTI] POLYGON),并定义了表征有效多边形的一组断言。每个几何类别的描述原创 2020-09-18 16:27:35 · 287 阅读 · 1 评论 -
PostGIS系统表之SPATIAL_REF_SYS
在PostGIS中最重要的两张OGC 元数据表:SPATIAL_REF_SYS和GEOMETRY_COLUMNS。 SPATIAL_REF_SYS表保存空间数据库中使用的坐标系统的数字ID和文本描述。如我们最常用的WGS84坐标系代号为EPSG:4326。SPATIAL_REF_SYS表和空间参考系统spacear_ref_sys表是一个包含PostGIS且符合OGC的数据库表,该表列出了3000多个已知的空间参考系统以及在它们之间进行转换/重新投影所需的详细信息。尽管PostGIS中spatia原创 2020-09-18 15:59:45 · 1803 阅读 · 1 评论 -
五分钟实现地理空间API:PostgREST+PostGIS
如何用PostgREST、PostgreSQL和PostGIS构建强大的空间restapi?以往我们在使用PostGIS做空间分析或者需要前端进行WFS或者空间分析的时候,可能会使用GeoServer发布图层,或者用Geotools自定义,但是使用如何用PostgREST就不需要了,我们一起看看如何实现吧。在本教程中,你将学习如何使用强大的PostgREST库在其引擎盖下构建一个SpatialRESTAPI—只需几分钟!我们将使用以下功能实现一系列不同的API:计算字符串的长度计算..翻译 2020-09-18 08:59:33 · 1337 阅读 · 1 评论 -
在Docker中部署PostgreSQL+PostGIS
如果你愿意通过Docker运行PostgreSQL,我们建议使用与PostGIS捆绑在一起的Kartoza的Docker recipe作为扩展。翻译 2020-09-18 08:57:48 · 3922 阅读 · 0 评论