Questions tagged «postgis»

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

3
使用PostGIS识别道路交叉口
我正在尝试确定道路相交的位置,并在此相交处定点,并列出构成该相交处的道路数量。 我想知道是否有使用ST_NumPoints的方法来实现此目的,但是我不太清楚应该怎么做。我所做的是使用以下代码创建线相交的点表: CREATE TABLE test_points as SELECT ST_Intersection(a.geom, b.geom), a.gid FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom); 如果我在道路样本上运行此代码,则会得到以下点网格(道路仅供参考): 如果检查这些点之一,就会发现有很多点彼此叠放: 这里的GID是道路ID,但我不明白为什么会有很多点。我可以理解中央道路交叉路口被计算出的4个点,但是这里列出了12个点。有没有更好的方法在PostGIS中执行此计算?


2
如何将ESRI地理数据库格式.gdb导入PostGIS
将ESRI地理数据库格式.gdb加载到PostGIS中时遇到问题。我有2.5GB的GDB文件数据。我在互联网上关注了一些教程,但似乎行不通。 我创建了一个数据库“ SampleNY” 我是从控制台执行的: ogr2ogr -f“ PostgreSQL” PG:“ dbname = SampleNY用户= postgres” NYPluto / Pluto.gdb 但是什么也没发生,我既没有错误也没有成功的操作。我错过任何步骤了吗?

3
将GeoPandas数据框添加到PostGIS表中?
我有一个简单的GeoPandas数据框: 我想将此GeoDataframe上传到PostGIS表。我已经具有PostGIS扩展的数据库设置,但是似乎无法将此数据框添加为表格。 我尝试了以下方法: engine = <> meta = MetaData(engine) eld_test = Table('eld_test', meta, Column('id', Integer, primary_key=True), Column('key_comb_drvr', Text), Column('geometry', Geometry('Point', srid=4326))) eld_test.create(engine) conn = engine.connect() conn.execute(eld_test.insert(), df.to_dict('records'))

2
用Postgis计算多边形中的点
我有一个简单的问题:我想计算一组多边形中的点数。 我已经有一个SQL,但它只返回实际包含点的多边形的gid。 我的表格:包含19.000行的多边形层和包含450行的点层。 下面的SQL select grid.gid, count(*) AS totale FROM grid, kioskdhd3 WHERE st_contains(grid.geom,kioskdhd3.geom) GROUP BY grid.gid; 仅返回一些实际包含点的320个多边形。但是我想返回所有多边形,甚至以为点数为0。 当然,这与我的WHERE条款有关。我必须在哪里放置我的st_contains? 谢谢卡斯滕

1
什么是“非节点交叉点”?
有人可以提供什么是“非节点相交”的精确定义吗?有各种各样的GIS平台和工具包对此文本有错误,并且针对此的Google搜索结果往往属于“降低精度,所有问题都消失了”的类别,而没有任何真正的错误原因的解释。给定两个有效的几何形状,为什么会发生此错误? 参考文档将是最有帮助的。

3
如何加快对栅格数据库的查询?
我在postgresql / postgis中有一个带有以下列的栅格数据库: (ID,rast,data_of_data)。 “ rast”是具有WKT格式的栅格文件的列。以下示例查询用于查找WGS84系统(30.424,-1.66)中某个点的DN值(对于2002-01-09): SELECT st_value(rast,(st_GeomFromText('POINT(30.424 -1.66)', 4326))) as val FROM my_table WHERE date_of_data='2002-01-09' 是否有一种方法(例如空间索引)来加快此类查询的速度?

6
如何在Windows上安装PostGIS?
我想基于PostGIS数据创建一个应用程序平台。我阅读了说明安装GEOS,GDAL和Proj4的前提条件的文档。主要问题是我正在使用Windows平台。有人可以向我介绍我可以在其上获得完整文档的地方,以在Windows及其所有库上安装PostGIS,GDAL,GEOS,Proj4吗?还是可以在Windows上安装所有库?

4
有哪些使用OpenLayers和PostGIS的知名网站?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我认为使用PostGIS有很多令人信服的论点,但我有兴趣向人们展示使用PostGIS和OpenLayers的网站的示例。 我看到的一些示例是: 四方 车载数据库 虚假性(很多例子) WalkScore(据我所知) 还有其他示例可以很好地说明这种组合吗?我不确定所列的任何站点是否将OpenLayers用作其功能的核心部分,但我相信它们都使用PostGIS。

2
使用QGIS 1.7时如何保护PostGIS凭证?
我相当确定这应该是社区Wiki,但是我不知道如何做到这一点。因此,如果管理员看到此情况,请在适当时进行更改。 那么...使用QGIS 1.7时如何保护PostGIS数据库数据?(我正在使用QGIS 1.7和PostGIS 1.5) 我问的原因是,由于最近有一个服务器更改了名称,因此我在notepad ++中打开了QGIS项目文件以更改数据源字符串中的主机值。当我在notepad ++中编辑项目文件时,每天看到的用户名和密码如下所示。 <datasource>dbname='spatialdb' host=gis port=9999 user='generaluser' password='gisv13wer' sslmode=disable key='gid' table="gisprod"."aq_pipeline" (the_geom) sql=</datasource> 这似乎有点像一把双刃剑,因为我喜欢这样的事实,即我可以轻松地在数据源字符串中编辑主机值,这样我就不会丢失我的项目,但是我对数据库凭据被删除感到不舒服。坐在那里不加加密,让全世界都可以看到。 作为应急,我已经将所有使用管理员帐户的项目文件放入一个文件夹,该文件夹现在只有我可以访问。但是我认为这不是理想的。 作为GIS管理员,我负责空间数据库的完整性,而且我担心我刚刚将整个数据库暴露给足够好奇的人。我有些沮丧,在评估QGIS时错过了这一点。 那么,如果您处于类似情况,该如何管理这种风险?我的应变能力对于生产环境是否足够好,或者提出QGIS功能请求以解决该问题会更好吗?

6
在免费的GIS软件中查找伪节点?
软件gvSIG OA Digital Edition 2010具有用于在线性几何中查找伪节点的工具拓扑。我为20000个链接计数线性几何设置了群集公差0.00002和最大错误数-10000。但结果不成功。 有没有在免费GIS软件中找到伪节点的解决方案? 我需要对伪节点进行分层(此问题的一种解决方案-使用ArcInfo的工具拓扑,但对我而言,优先使用自由软件)。线性几何在PostGIS(v.0.1.2)数据库的QGIS 1.8.0中创建了多个用户。 添加新图像:A(4/5行),B(6/7行),C(9/10行)中具有三个伪节点的12个线性特征。伪节点应改为点-在一个点(节点)中相交的两个线性要素应为一个线性要素(第4/5行-第4行,...)。 是否可以在PostGIS中发出请求,从而导致伪节点层? 添加示例伪节点示例的新图像:如果收到线性层点层伪节点(蓝色矩形),则纠正了线性层中的以下错误:A-添加缺少的几何图形,B-交点处的捕捉线,C-移除伪节点。

3
使用PostGIS将MultiLinestring转换为Linestring?
我有一个多行字符串,并且想要将其转换为行字符串,以便使用某些仅适用于行字符串的功能。我使用ST_Dump()并收集了我的几何形状。如果将它们合并在一起,我仍然会得到多线串。我应该得到Npoints并将它们组合在一起,还是以某种简单的线串结尾?ST_LineMerge()在我的multilinestring上也不起作用,它返回相同的结果。 我的例子 MULTILINESTRING(( - 3.16420835153456 55.9269166007097,-3.164222 55.926918),( - 3.1642070167833 55.9269296196706,-3.16421351659546 55.9268662214904),( - 3.16421351659546 55.9268662214904,-3.16421636372824 55.9268384509897),( - 3.16421636372824 55.9268384509897,-3.16422182573761 55.9267851753802),( - 3.16422182573761 55.9267851753802,-3.16422870102352 55.926718114886 ),( - 3.16422870102352 55.926718114886,-3.16423309121073 55.926675293667),( - 3.16423309121073 55.926675293667,-3.16423565148822 55.9266503211093),( - 3.16423565148822 55.9266503211093,-3.16424103159897 55.9265978443265),( - 3.16424103159897 55.9265978443265,-3.16424680776317 55.9265415044985),( - 3.16424680776317 55.9265415044985,-3.16425267254583 55.9264843002995 ),(-3.16425267254583 55.9264843002995,-3.16425541048045 55.9264575949012),(-3.16425541048045 55.9264575949012,-3.16426111146586 55.9264019883556),(-3.16426111146586 55.9264019883556,-3.1642667032531 …
16 postgis  sql 

1
是否具有PostGIS函数来确定线串是否相交?
我一直在寻找一个可以告诉我LineString是否相交的函数。我尝试st_intersects用相同的LineString 调用两次,但是显然相同的线串会相交。我的计划是,如果没有功能,将获取线串中的所有点,并创建单独的线串,然后使用st_intersects将每个新的线串相互检查。我不希望它出现在这个问题上,但恐怕会这样。 那么,是否有任何PostGIS函数来检查线串是否自相交?它应该类似于确定多边形是否复杂
16 postgis 


1
使用PostGIS识别拓扑关系
我正在尝试使用PostGIS执行基本的类型分析。我的目标是找到所有与其他多边形接触的多边形。为此,我认为ST_GetFaceEdges可以工作(参考)。我想检查数据库中的每个多边形,并列出所有与之接触的其他多边形。在下面的图像中,我希望结果表示两个多边形(即建筑物)接触一栋建筑物,而其他四个的结果表明它们接触0个多边形。 但是,我在理解该怎么做方面有些困难。当我尝试复制示例时,其中有一些我不理解的部分。 -- Returns the sequence, edge id -- , and geometry of the edges that bound face 1 -- If you just need geom and seq, can use ST_GetFaceGeometry SELECT t.seq, t.edge, geom FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge) INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id; 我不确定topology是表,列还是函数的一部分的名称。我以为是桌子,但我不确定。 -- try …
16 postgis  sql  topology 

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.