Questions tagged «postgis»

PostGIS是PostgreSQL对象关系数据库的扩展,增加了对地理对象的支持。

2
PostgreSQL / PostGIS空间索引-无速度
我在PostgreSQL / PostGIS数据库中有一个空间表。其中的每一行都代表一个多边形。它具有以下形式: +----+--------+ |gid | way | +----+--------+ |241 | 01030..| 几何列是“ way”,其中包含多边形的几何。在WKT中是:POLYGON(('....'))。我正在此表上执行很多ST_Contains查询,以测试彼此是否包含两个多边形,例如: Select ST_Contains(a.way, b.way) From table AS a, table AS b Where a.gid = 15 And b.gid = 16 我想知道如何加快查询速度,并在表上添加空间索引: CREATE INDEX table_way_gist ON table USING gist(way); 但实际上我看不到速度提高。在执行ST_Contains查询之前,我在用所有多边形填充表格之后创建索引。填写表格之前是否应该添加索引?表格上是否有使用索引的特殊要求?几何圆柱路径的投影(纬线)设置为900913。 我正在使用:psql(PostgreSQL)9.1.4 / POSTGIS =“ 1.5.3”

3
使用PostGIS连接相交线
我几乎不敢问这个问题,但是我似乎无法让它在我的一生中发挥作用。 我有一个路段,每个路段都有一个Road ID和一个路段type。 我想将所有的段连接在一起,将每个段连接Road ID成一个线串,但前提是它们相同type且相互接触(所有线都对齐)。 Road ID - Type 1 L 1 L 1 T 1 L
15 postgis  sql 

4
数据库设计:GIS中的道路拓扑
是否有标准或最佳做法来存储有关道路的某些特征: 道路方向性: 单向街道:仅沿一个方向行驶的道路 中心转弯车道:存在于两个车道之间的道路,每个车道均可用于向左或向右转,例如 高速公路立交匝道和合并车道 道路功能: 交叉口布局(信号化或非信号化): 将交叉点的不同允许和禁止模式合并到数据库中,例如: 不准掉头 左转绿色(或不打开) 绿色周期和时间 交叉路口的主动与非主动进近 通行权规则:某些交叉路口的通行权规则可能与典型的有所不同。以一条丘陵路为例,除了上坡的人,每个人都必须在停车牌处停车。他们没有停车标志,因此所有交通都必须屈服于他们。

6
如何使用ST_Intersection?
以下是我要执行的操作的简要摘要:Postgres中有3个表,“ a”和“ b”,每个表都有一个Polygon列,而“ c”有一个Point列。我在这里要做的是获取“ a”,“ b”和“ c”之间的几何形状相交,并在OpenLayers矢量层上显示此类几何形状。 我已经知道如何在OpenLayers中显示字符串中的任何几何形状,但是我在使用PostGIS的ST_Intersection函数时遇到了麻烦,我正在这样做: SELECT ST_Intersection(a.geom, b.geom) as inter from a, b; 其中a.geom和b.geom都是几何列,并且我收到此错误消息: NOTICE: TopologyException: found non-noded intersection between 515172 2.14408e+06, 497067 2.13373e+06 and 501321 2.13546e+06, 471202 2.14843e+06 500621 2.13576e+06 ERROR: GEOS Intersection() threw an error! 我也尝试使用ST_AsText将生成的几何图形表示为文本,如下所示: SELECT ST_AsText(ST_Intersection(a.geom, b.geom)) as inter from a, b; 但它向我发送此错误消息: …

6
PostGIS:将A层中的点的ID分配给B层中的最近点
这应该是另一个问题的显而易见的先驱(我没有问过): 如何在PostGIS中创建蜘蛛图(集线)? 如果我不知道A层中的一个点(商店)和B层中的一个点(客户)之间的关系,我通常要说“最近的商店为客户1提供服务”。虽然我意识到这个事实可能并非如此,但它可能是一个不错的替代品。 使用PostGIS,最有效的方法是将A层(商店)中最近的点的ID分配给B层(客户)中的每个点。我正在寻找的输出如下所示。 Customer | Store 1 | A 2 | A 3 | B 4 | C

3
计算where子句中的相交面积百分比
我在postgres中有一个多边形表(人口普查块组)。我想用主要位于其中的城镇(另一个多边形表)标记每个街区组。这可能吗?我在想我基本上需要创建如下内容: select b.*,t.name from blockgroups b, towns t where (st_area(st_intersection(b.wkb_geometry, t.wkb_geometry))/st_area(b.wkb_geometry)) > .5 但是这个查询将永远持续下去(我有大约5,000个街区组和375个城镇...)。如果不正确,是否有任何建议可以使该查询正常工作,如果正确,该建议有何建议?

2
如何在Linux上将esri个人地理数据库(.mdb)导入PostGIS
我们拥有esri个人地理数据库,需要将其导入PostGIS。 最终,我们希望允许人们将MDB上传到Web服务器上,并将其导入到PostGIS中。 在Windows上,使用FW工具,以下工作正常: ogr2ogr -f "PostgreSQL" PG:"host=10.10.10.10 user=someuser dbname=poi password=somepassword port=5432" S:\GISData\Test.mdb -a_srs EPSG:26986 但是,我想使它自动化(并以编程方式进行),因此[我认为]在Linux上要容易得多。

2
设置PostGIS数据库并在Windows的QGIS中打开它?
我试图遵循手册来设置PostGIS数据库,以供QGIS用户访问,但是目前我还不了解需要什么进展? 我的情况; 我是一名实习生,负责创建PostGIS数据库以对绿色对象(例如树木)进行数字化并运行查询-例如将街道列表与图像文件链接到属性表。 我有“ shapefile骨架”(当前为空,没有对象,只有属性框),其中将粘贴/创建当前和将来的地理参考对象(每种类型使用不同的shapefile)。我相信我可以将这些骨架shapefile导入数据库? 情况; 我们在单独的大楼中工作,我们拥有自己的LAN和Internet连接,并且每个文件都有一个备份服务器。因此,我们可以访问本地文件,并可以通过Internet连接共享文件 管理员已通过远程访问使用PostGIS和PostgreSQL的最新.exe执行文件(postgresql-9.6.2-3-windows-x64和postgis-bundle-pg96x64-setup-2.3.2)来完成数据库的设置。 -1)用于我的64位计算机。管理员为我提供了一个包含登录信息的文本文件。这里的培训手册非常令人困惑,因为它们涉及Ubuntu。 我被卡住了,因为我不知道在哪里使用我写下的登录信息?我假设我需要使用pgAdmin?

2
无效几何的含义是什么
我已在Postgis数据库中导入了一些数据,并且报告了某些几何形状无效(ST_IsValidReason报告了自相交或环自相交)。 我正在执行的查询似乎不受这些几何的无效方面的影响(我仅使用ST_Distance查询)。 几何无效时会破坏什么? 是否可以“自动”修复这些几何(缓冲区(geom,0)或ST_SimplifyPreserveTopology(geom,0.0001))?

3
将Geopackage内容上传到PostgreSQL
作为背景知识,我们正在寻求摆脱使用shapefile的过渡。我们已经开始使用Geopackages进行桌面工作(QGIS / ArcGIS),但是经常需要将数据上传到我们的PostgreSQL数据库。 我知道您可以使用QGIS将Geopackage内容上传到Postgres,但想知道是否有类似于shp2pgsql的命令行实用程序将Geopackage或Geopackages中的表格上传到Postgres?我假设可能是ogr2ogr,但找不到文档。

2
使用PostGIS在表格中通过纬度/经度创建几何?
我的表有80万条记录,包括经度和纬度。数据源未创建几何,因此我一直在寻找如何执行此操作的方法。我知道有ST_MakePoint(x,y,SRID),但是所有文档和其他线程都显示了如何创建单点。如何使用这些列创建几何类型?
15 postgis  sql 

1
PostGIS栅格求和(地图代数)
我有一个表示特定日期旅行时间等时线的多边形表。对于每个原点,有五个等时线几何体(存储在单独的行中)。对于每个原点,我要栅格化五个等时线(二进制NULL或1),然后将它们组合成一个栅格图层。此栅格图层需要一个简单的地图代数:sum / 5,以便最终每个原点都将与一个单独的栅格图层相关联,该栅格图层的值分别为[NULL,0.2、0.4、0.6、0.8、1],具体取决于多少组成层重叠。这是一个概率面。 我的数据全部存储在Postgres 9.3(带有PostGIS)中。我的问题是,尽管我想学习使用PostGIS栅格,但是学习曲线似乎非常陡峭,我可以找到的所有示例都涉及单个栅格图层。在示例中,该图层用作多边形叠加层的一部分,可能平均了每个多边形的栅格值。我还没有找到组合的可复制示例:a)矢量->栅格b)地图代数;c)按照我的第一段的GROUP BY属性。 如果必须执行此任务,我可以使用GDAL或GRASS,但这似乎是PostGIS应该能够处理的。鉴于我的输入数据已经是PostGIS几何图形,这样做会很方便;我真的很想了解PostGIS栅格。 一些样本数据结构: areaid time date isogeom (polygon) 1000 07:15:00 2014-05-05 xxx 1000 07:15:00 2014-05-06 xxy ... 1006 07:15:00 2014-05-05 zzz 我想栅格化,按areaid分组,然后执行地图代数得出: areaid isorast (raster) 1000 aaa 1006 bbb 我没有成功将其包含到PostGIS中。我的方法是将矢量转换为栅格,将栅格转储为数组,并通过psycopg2将其与numpy数组组合,然后再将其写入GeoTIFF(可能会放回PostGIS中)。不理想,但可行。

2
PostGIS中的大点云激光数据-存储和处理
我想知道,考虑到处理时间的考虑,如何在PostGIS中存储大量激光扫描点云数据。我知道,PointPostGIS中存在一个几何对象。但据我所知,它会将每个点保存在一个新的tupel中,如果存储了数百万个或更多,则可以使搜索某个特定点非常缓慢。 我从HSR应用科学大学的Rapperswill网站找到了一篇论文,讨论了这一主题。它提出了三种存储此类数据的方法:Whole data in one tupel,Each point in one tupel或Splitting Data into Blocks由信息表引用的方法,用于保存每个块的扩展。由于第三种方法似乎对于定位存储的点最为有用,我想知道是否有人已经对此进行了一些体验? 该文件可以在这里找到:http : //wiki.hsr.ch/Datenbanken/files/pgsql_point_cloud.pdf 最后但并非最不重要的一点是,我在github上的一个项目中遇到了麻烦,该项目似乎处理了PostgeSQL中的点云方式。不幸的是,网上没有太多有关它的信息。同样的问题在这里:有人已经对此有所经验吗?可用于此类目的吗? 可以在这里找到项目:https://github.com/pramsey/pointcloud 如果有其他建议,想法或经验,我也很高兴听到。但是我必须承认,非商业解决方案是首选。

2
尝试添加PostGIS视图时,QGIS返回“无效层”消息吗?
我是Postgis和QGIS的新手。我创建了一个视图,定义为 CREATE OR REPLACE VIEW pupr.vstudentmuni AS SELECT m.id AS munid, m.name AS muname, m.geom, s.code, (s.name::text || ' '::text) || s.lastname::text AS fullname FROM pupr.municipio m, pupr.student_location l, pupr.student s WHERE st_within(l.geom, m.geom) AND s.code = l.code; 在PostgreSQL中。尝试将此视图添加到QGIS会返回以下错误... "Invalid layer"..."sql= is an invalid layer and cannot be loaded." 不确定是什么问题。geommetry_columns在PostGIS …

1
QGIS中的最近邻居分组选择
我有一个包含以纬度/经度格式超过100,000点的列表,我已经将其导入到qgis中。 现在,我要在此处进行的操作是将所有这些点分组为框组,这实际上是指我想将地图拆分为边界框。 我的要求如下: 盒装组的得分不得低于100,且得分不得超过200 不得将一个点放置在多个组中 所有点应基于其最近的邻居 我如何通过q​​gis实现这一目标? 我假设可以传递一些自定义查询代码并保存结果,或者将创建的框保存为shapefile正确吗?有人可以解释一下如何做到这一点以及代码是什么样的吗? 如前所述,我的目标是将一堆方形框显示为shapefile图层,其中每个框内的属性不少于100个且不超过200个。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.