Questions tagged «postgresql»

PostgreSQL是一个开放源代码的对象关系数据库系统。

2
如何在PostGIS中获得两个几何之间的测距仪值?
我有一个关于在PostGIS中计算距离的简单问题。 我想得到两个几何之间的距离。我正在使用此sid:4269以米为单位我现在正在做的是:ST_Distance((a.geom,b.geom)) FROM ...但是我得到的结果是以度为单位。我认为我应该处理地理问题,但是如何将地理模型转换为地理?我尝试了(a.geom :: geography),但出现错误。 我该怎么做才能以米为单位得出结果? 谢谢

4
导入.shp到PostgreSQL吗?
我想将一个shp文件导入postgreSQL。首先,我创建sql文件,然后运行PostgreSQL。要创建sql文件,我在Windows cmd中运行以下命令: shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql 然后运行: psql -d postgres -U postgres -p 4321 -f worldcountries.sql 但结果是: psql:worldcountries.sql:21:错误:函数addGeometrycolumn(未知,未知,未知,未知,未知,整数)不存在

4
使用QGIS或PostgreSQL或任何其他免费应用程序实现空间自相关?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4个月前关闭。 我是GIS的新手。 我在PostgreSQL数据库中有两层。 第一层包含欧洲发生事件的地点。第二个包含欧洲的shapefile。 我已经能够使用QGIS在欧洲地图上绘制点。我现在想实现空间自动校正(Moran i)。 我已经看到了一些使用GeoDA进行此操作的演示,但似乎只处理一个shapefile。 谁能为我指出如何使用QGIS或PostgreSQL或任何其他免费应用程序实现此目标的正确方向?

1
访问存储Postgis空间索引的内部数据结构(PostGres GiST)
我很好奇Postgis中空间GiST索引的内部数据结构和存储机制。在Oracle中,我曾经喜欢展示SDO索引是如何“仅仅是另一张表”,以及级别是索引的属性,以及索引几何的bbox如何存储为blob(可以提取)。Postgis如何存储索引,在哪里? 系统表http://www.postgresql.org/docs/8.3/static/catalogs.html可用于标识索引,但是我不知道如何访问实际存储(如果它们确实是表)

1
Hstore键/值和空间查询的组合太慢,无法处理更大的OSM提取
我正在尝试使用PostgreSQL 9.3.5和PostGIS 2.1.4计算OSM数据的一些统计信息。我从从Geofabrik下载的巴伐利亚提取物开始。db模式是正常的API 0.6模式,数据是通过转储方法导入到Postgres中的(使用渗透性附带的pgsnapshot_schema_0.6 * .sql脚本)。还进行了真空分析。 我使用的唯一定制产品是一个多边形表,该表包含用于所有管理边界关系的多面体。多边形的几何形状没有任何简化。 我现在想要实现的是计算巴伐利亚的admin = 6边界内的所有节点。这是我的SQL查询: SELECT relpoly.id, count(node) FROM bavaria.relpolygons relpoly, bavaria.nodes node WHERE relpoly.tags @> '"boundary"=>"administrative","admin_level"=>"6"'::hstore AND ST_Intersects(relpoly.geom, node.geom) GROUP BY relpoly.id; 该查询的运行时非常糟糕,因为Postgres正在执行嵌套循环联接,并在所有节点上扫描每个admin = 6边界。仅供参考,巴伐利亚被分成98个admin = 6个多边形,巴伐利亚提取物中大约有3000万个节点。 是否有可能避免这种次优查询的执行,并告诉Postgres它只扫描一次所有节点(例如,通过增加结果集中对应多边形的计数器或使用提示)? 编辑: 1)巴伐利亚节点上存在空间索引: CREATE INDEX idx_nodes_geom ON bavaria.nodes USING gist (geom); 2)查询计划如下: HashAggregate (cost=284908.49..284908.75 rows=26 width=103) -> …

4
一个shapefile中多边形在另一多边形中的百分比
我是新手,很抱歉,如果这很明显/已经有人问过并回答了,但我找不到任何东西。 我有两个shapefile:1.英国某县的行政边界层,称为LSOA边界,其中有500个小区域2.洪水区。 理想情况下,我想找出洪水泛滥区内的哪个小LSOA区域≥50%,最后对500个LSOA区域中的每一个以是/否或1/0结尾。 但是我不知道该怎么做。我以为可以合并两个shapefile,但是它们之间没有共同的属性。然后,我想我可以使用“按位置连接属性”功能,该功能有效,并向我显示了哪些LSOA处于洪泛区,但是几乎所有这些都存在(参见图2)。 我认为这是一个SQL问题,但我不知道。我是QGIS的新手,从未使用过PostgreSQL。 任何帮助将不胜感激。我可以提供您可爱的人需要帮助的任何信息。

2
相对于简单的ArcSDE,将ArcGIS与PostgreSQL结合使用有什么好处?
我了解到,为了从ArcGIS空间数据类型(ST_GEOMETRY,版本化的地理数据库等)中受益,需要安装ArcSDE-并随10.1客户端一起自动安装(两层客户端>> DBMS,请参见此处)。 但是,我仍在尝试找出将Esri前端连接到PostgreSQL(或Oracle)的好处。它纯粹是后端的好处,例如可伸缩性/性能/冗余/ DBAability,还是PostgreSQL / PostGIS设置提供了额外的前端功能?Esri 帮助似乎没有详尽说明 仅供参考,我是一个数据库新手,他正在设计GIS论文,目的是说明为什么Postgresql / PostGIS / QGIS比ArcGIS /任何数据库更具可伸缩性/灵活(和便宜),所以还必须考虑上述情况,我可以付诸实施。最后一点上的任何链接,尤其是有关工作流的链接(例如,没有大量的shapefile会使所有内容杂乱无章),都是最受欢迎的。d。

4
连接到ArcGIS Desktop PostgreSQL数据库(在本地运行)
我知道这是一个完全的菜鸟问题,但是再一次,当涉及到PostgreSQL时,我是一个完全的菜鸟... 我已经在运行Windows 7(64位)的计算机上安装了OpenGeo套件。我已经下载了教程数据并一直在研究它。我想访问我用ArcGIS创建的数据库,这样我就可以开始学习它是如何工作的。但是,当我尝试使用“添加数据库连接...”连接到数据库时,我似乎无法弄清楚要为“实例”添加的内容-我尝试过的所有内容(本地主机,本地主机,54321,带有端口号和不带端口号的IP地址,我的计算机名)似乎不起作用。 我根据OpenGeo教程页面中的所有说明安装并创建了nyc测试数据库,但是这里完全不知所措。我知道这一定是一件容易的事,我只是无法解决。可以给有更多经验的人给我一个机会吗? 令人沮丧的是,QGIS几乎毫不费力地连接到数据库,并且一切正常-但是我的组织非常注重ESRI,因此切换到QGIS远非易事... 编辑 谢谢大家参与。我非常感谢您的建议,这是使此网站很棒的原因。我已经安装 没有扩展的OpenGeo Suite 3.0.1 ArcGIS Desktop 10.1,无服务器许可证 我刚去Opengeo网站,下载了Windows安装程序并安装了默认配置。我已经尝试过对可以想到的实例名称进行每个排列-使用冒号和逗号,我的计算机名称,本地主机,postgresql,服务器,我的IP地址,随机诅咒词以及我能想到的任何东西。我一直使用端口54321而不是5432,因为这是OpenGeo研讨会告诉我设置的“ nyc”练习数据库要使用的端口。 似乎localhost应该可以工作,这是pgAdmin的服务器属性的快照:

1
如何获得多边形内的线的长度
如何获得红色多边形内“道路7”的长度(棕色标记的部分)? 我的开始: SELECT ST_Length(way) FROM lines WHERE road = "Road 7" AND ST_Intersects(line, polygon)? 这样,我只得到全长:(有人有主意吗?

1
如何在PostGIS中执行点和面图层的空间连接?
我有一个点数据集,表示要与宗地图层关联的住户(即分配其parcel_id)。使用ArcMap,我可以在空间上将多边形连接到点,并指定连接具有一定的搜索半径并使用最近的多边形。 我希望与postgres一起执行此操作,并且想知道执行此操作最谨慎的方法是什么。我不能使用ST_contains,因为点落在街道上而不是实际的地块上。代替ST_contains,还有另一个允许进行邻近度检查的功能吗? update households h set parcel_id = p.parcel_id from parcels p where ST_contains(p.the_geom, h.xy);

3
将shapefile数据集中到数据库中
我已经从各种不同的GIS项目中获得了数百个shapefile,我希望开始将它们合并到一个数据库平台中,目前正在使用Postgres / PostGIS进行尝试。 几乎没有任何数据是标准化的-这意味着它是许多相同的数据类型,但是特定的属性名称/类型不匹配。 我应该从哪里开始解决这个问题?我是否应该开发一个标准模型将每个shapefile迁移到第一个模型(例如Hydro_line,transport_line,Hydro_poly标准等)? 一种替代方法是仅将每个shapefile分别导入Postgres,因此每个shp都将成为数据库中的表,但是就性能和组织而言,我不确定。感觉有点像延迟不可避免的事情... 对处理这个艰巨的任务有什么建议吗?

1
使用ogr2​​ogr将shapefile导入postgis会给出:无法打开数据源
我想使用ogr2​​ogr以便在postgis数据库中导入shapefile。我已经成功安装了ogr2ogr,并且从pgsql运行了以下命令: ogr2ogr -f "PostgreSQL" PG:"host=localhost user=user_1 password=***** dbname=imports" world_boundaries.shp 我得到的是一条错误消息: Unable to open datasource `world_boundaries.shp' with the following drivers: --a list of drivers follows (ESRI Shape File etc.) 我也尝试定义了shapefile的完整路径,但得到了相同的消息。 我也尝试运行: ogrinfo world_boundaries.shp 一样。 解决文件权限问题后,出现以下错误: ERROR 1: AddGeometryColumn failed for layer world_boundaries, layer creation has failed. ERROR 1: Terminating translation prematurely …

2
将大型CSV文件导入PostGIS
我正在尝试将CS​​V文件导入PostGIS。在这篇文章之后,我之前已经创建了表。我发现其他建议说我可以运行copy命令。 如果我运行此命令: COPY table FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER; 它根本没有复制表格。它说“表”未被识别。 我尝试了这个: COPY moulding (Borough,Block,Lot,CD,CT2010,CB2010,SchoolDist,Council,ZipCode,FireComp,PolicePrct,Address,ZoneDist1,ZoneDist2,ZoneDist3,ZoneDist4,Overlay1,Overlay2,SPDist1,SPDist2,LtdHeight,AllZoning1,AllZoning2,SplitZone,BldgClass,LandUse,Easements,OwnerType,OwnerName,LotArea,BldgArea,ComArea,ResArea,OfficeArea,RetailArea,GarageArea,StrgeArea,FactryArea,OtherArea,AreaSource,NumBldgs,NumFloors,UnitsRes,UnitsTotal,LotFront,LotDepth,BldgFront,BldgDepth,Ext,ProxCode,IrrLotCode,LotType,BsmtCode,AssessLand,AssessTot,ExemptLand,ExemptTot,YearBuilt,BuiltCode,YearAlter1,YearAlter2,HistDist,Landmark,BuiltFAR,ResidFAR,CommFAR,FacilFAR,BoroCode,BBL,CondoNo,Tract2010,XCoord,YCoord,ZoneMap,ZMCode,Sanborn,TaxMap,EDesigNum,APPBBL,APPDate,PLUTOMapID,Version) FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER; 但也没有用。 可以从以下链接下载此类数据集的示例: 我应该创建一个模型然后执行吗?

1
实体化视图未出现在Geometry_Columns视图中
我在运行PostgreSQL 9.3.1的启用PostGIS 2.1的数据库中定义了一个物化视图: CREATE MATERIALIZED VIEW canvec_data.contours_m AS SELECT contours_original.ogc_fid, contours_original.elevation::integer AS elevation_orig, CASE WHEN "substring"(contours_original.code::text, 1, 3) = '257'::text THEN round(contours_original.elevation::double precision * 0.3048::double precision) ELSE contours_original.elevation::double precision END AS elevation_m, contours_original.wkb_geometry::geometry(Linestring,3578) FROM canvec_data.contours_original 我可能错误地期望此结果实体(一个表?)会在public.geometry_columns视图中列出,并因此由GIS查看器软件(例如QGIS)正确解释。 物化视图未出现在public.geometry_columns视图中。 我究竟做错了什么? 谢谢!

4
开放式街道地图和PostgreSQL我到底需要什么?
我迈出了GIS的第一步,即使我从事与地图非常相关的“巨大”项目(例如,对于一个程序员而言),对我来说,一切都是新的。 我的项目需要了解以下有关世界任何位置的信息: 道路类型 道路名称 道路坐标 城市边界 水路名称 水路坐标 我发现由于有了“开放街道地图”,我可以拥有所有这些信息,因此我的项目开始工作。但是现在我需要处理更大的地图(即:大于OSM导出提供的50.000个XML节点限制)。我知道我需要将整个星球放入数据库中。 Internet上有很多有关PostgreSQL和Open Street Map的文档,但我不知道从哪里开始。实际上,我找到了有关Osmosis的文档,以便将行星转储放入数据库中,但是我也找到了有关osm2pgsql的文档。关键是我不知道什么对我最好。 似乎(但我可能错了)已经制作了osm2pgsql来渲染mapnik地图,这是我根本不需要的东西,因为我必须知道道路/城市/水路信息...但是我不确定是否拥有正确理解mapnik可以做什么。 我的问题是:我可以使用什么将OSM数据插入数据库中,以便以后像OSM导出文件一样容易地重用它? 谢谢。 编辑:我使用的计算机是运行GNU / Linux Debian的专用服务器(Intel(R)Pentium(R)E2180 2.00GHz和2GB RAM)。 PS:我知道我的问题似乎很愚蠢,因为渗透可以插入,但也可以从数据库中提取xml文件。无论如何,我需要知道你会怎么做。 PS:如果有人知道在哪里可以找到适合初学者的不错的OSM +数据库教程,我将不胜感激!

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.