Questions tagged «postgis»

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

2
将大型数据集导入PostGIS的最佳方法是什么?
我必须将大型Shapefile文件(> 100万条记录)导入PostGIS,而且我一直在想最好的方法。 在我的问题中,我故意使用“ hack”一词,而不是工具,因为我认为这与哪个工具无关,而与要使用的步骤集或配置设置有关。到目前为止,我已经尝试了SPIT插件(QGIS),shp2pgsql Postgis工具和GDAL ogr2ogr工具。您可以在这篇文章中查看我的完整评论。到目前为止,当处理大型数据集时,我发现它们都真的没有响应。我想知道是否有人遇到过类似的问题,以及您是否可以分享有关此方法的一些信息。

4
返回特定纬度/经度半径30公里范围内的所有结果?
我有一个表,其中的一列the_geom包含类似于以下内容的数据: 0103000020E61000000100000005000000CE473AACFA071E40F27FB23340744740336FE841C6231E40873BED903F744740FC150A0ACE231E40D19E2684637647409C9B443D00081E409A9AF82664764740CE473AACFA071E40F27FB23340744740 应用该函数时,哪个ST_AsEWKT(the_geom)返回: SRID=4326;POLYGON((7.5077921782085 46.9082092877942,7.53493597966353 46.9081898840296,7.53496566473541 46.9249119938446,7.50781341296434 46.9249314035307,7.5077921782085 46.9082092877942)) 我需要选择在特定纬度/经度半径30公里范围内的所有数据,例如: 纬度= 46.8167 lng = 6.9333 但是,每当尝试使用时ST_Distance(),我总是收到小于1的值,并且使用ST_DWithin()总是返回true。
21 postgis  distance 

3
是否可以使用OGR Python API从OSR SpatialReference类获取EPSG值?
从OGR PostGIS连接读取图层时,可以获取该图层的SpatialReference,但是可以获取EPSG值吗?是否有任何文档? 例如: lyr = conn.GetLayerByName(tbl) # Where conn is OGR PG connection srs = ly.GetSpatialRef() print srs 返回值: PROJCS["OSGB 1936 / British National Grid", GEOGCS["OSGB 1936", DATUM["OSGB_1936", SPHEROID["Airy 1830",6377563.396,299.3249646, AUTHORITY["EPSG","7001"]], AUTHORITY["EPSG","6277"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.01745329251994328, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4277"]], UNIT["metre",1, AUTHORITY["EPSG","9001"]], PROJECTION["Transverse_Mercator"], PARAMETER["latitude_of_origin",49], PARAMETER["central_meridian",-2], PARAMETER["scale_factor",0.9996012717], PARAMETER["false_easting",400000], PARAMETER["false_northing",-100000], AUTHORITY["EPSG","27700"], AXIS["Easting",EAST], AXIS["Northing",NORTH]] 那么,如何获得投影的EPSG值?例如: srs.GetEPSG() …
21 python  postgis  ogr 

4
如何为PostGIS数据库创建一个简单的前端?
我的组织收集了许多环境监测数据(物流,水化学等),其中大多数当前存储在Excel中。我想将所有内容都放入数据库(可能是PostGIS)中,但是我需要不了解数据库基础原理(没有SQL或类似语言)的人们可以访问这些数据。 我想为我的数据库提供某种简单的前端,用户可以在其中选择感兴趣的监测站,变量类型(例如,硝酸盐浓度)和时间间隔。然后,数据库将以csv格式返回请求的数据,用户可以将其下载到他们的计算机。在理想的情况下,前端将显示所有监控站的可单击地图,但是如果比较容易,则可以从可用站点的下拉列表开始。我想这个前端可能是一个网站,但不一定如此。 请问这有多困难,我有什么选择?我无论如何都不是数据库专家,但是我在Desktop GIS方面有扎实的背景,并且我很高兴编写简单的Python脚本并使用PostGIS,SpatiaLite和ESRI Personal地理数据库。我从未做过任何Web开发或Web GIS,但我渴望学习。 昨天我花了一部分时间探索一些出色的OpenGeo教程。这种方法看起来很有希望,至少现在我可以看到如何将数据显示在网站上。对我而言,最不明显的是我如何让用户查询数据库并获得结果。 我的问题:对于这样的项目,我应该考虑什么样的软件结构?例如 PostGIS + GeoServer + Something else? 我应该研究哪些其他选择? 一开始会首选一个简单但实​​用的解决方案:如果我可以组装一个基本原型,则可以用它来证明花更多的时间学习如何“正确”做事是合理的。开源也是一项要求,因为在没有证明自己有任何好处之前,我没有任何预算。 非常感谢!

5
在PostGIS中使用公共模式以外的模式吗?
我目前正在Ubuntu上重新安装PostGIS 2.0.2和PostgreSQL 9.1.6。我最近遇到了一些 信息,表明使用公共架构存储所有数据不是一个好主意。 因此,我建立了一个名为data的架构,并让自己成为所有者,但这是一个好主意吗? 我担心的是: 除了设置所有者外,在创建新模式时(通过pgAdmin III),我可能还需要注意“权限”选项卡上的内容。 通过将数据存储在公共模式中并将所有数据转储到单独的模式中,然后再执行备份/还原,我可能不会获得相同的好处(使用ogr2​​ogr可以节省一些击键次数);和 我可能在新数据模式中没有默认的PostGIS表和视图(它们位于同一数据库的公共模式中)时遇到麻烦。
21 postgis 

4
使用GDAL编程的最佳语言
我将开始创建程序来处理来自PostGIS服务器的地理数据,并使用GDAL。 根据您的经验,用最好的语言来编程吗?我可以使用Perl和Python进行编程,但想了解该语言,并提供更多可重复使用的代码,示例,库等。
20 python  postgis  gdal 

8
如何在pgadmin3中启用Shapefile GUI加载程序?
我已经在Ubuntu 11.10上安装了PostGIS 1.5.3的PostgreSQL 9.1。 按照此说明,我还安装了pgadmin3 1.14.0-beta1 。 如果我没记错的话,当我在Windows上安装PostGIS时,pgadmin自动安装了Shapefile GUI Loader插件。但是,在Ubuntu上,插件下拉菜单为空。 我发现的说明似乎是Windows特定的。 有没有办法在Ubuntu上安装/启用它?


3
使用PostGIS创建空间表
在PostGIS文档中,它说使用SQL创建空间表有两个步骤: 创建一个普通的非空间表。 使用OpenGIS“ AddGeometryColumn”功能将空间列添加到表中。 如果遵循这些示例,则将创建一个terrain_points像这样的表: CREATE TABLE terrain_points ( ogc_fid serial NOT NULL, elevation double precision, ); SELECT AddGeometryColumn('terrain_points', 'wkb_geometry', 3725, 'POINT', 3 ); 另外,如果我查看pgAdmin III中的现有表,似乎我可以像这样创建相同的表: CREATE TABLE terrain_points ( ogc_fid serial NOT NULL, wkb_geometry geometry, elevation double precision, CONSTRAINT terrain_points_pk PRIMARY KEY (ogc_fid), CONSTRAINT enforce_dims_wkb_geometry CHECK (st_ndims(wkb_geometry) = 3), …

3
SELECT DISTINCT在PostGIS几何列上的精度是多少?
我想知道SELECT DISTINCT操作员在PostGIS几何图形上的精度如何。在我的系统上,以下查询给我一个5的计数,这意味着如果插入的点相差小于1e-5,则认为插入的点相等,并且我不确定这是否是PostGIS的功能,这是我安装的问题或错误。 有人知道这是否是预期的行为吗? CREATE TEMP TABLE test (geom geometry); INSERT INTO test VALUES (St_GeomFromText('POINT (0.1 0.1)')), (St_GeomFromText('POINT (0.001 0.001)')), (St_GeomFromText('POINT (0.0001 0.0001)')), (St_GeomFromText('POINT (0.00001 0.00001)')), (St_GeomFromText('POINT (0.000001 0.000001)')), (St_GeomFromText('POINT (0.0000001 0.0000001)')), (St_GeomFromText('POINT (0.00000001 0.00000001)')), (St_GeomFromText('POINT (0.000000001 0.000000001)')); SELECT COUNT(*) FROM (SELECT DISTINCT geom FROM test) AS test; count ------- 5 …

2
如何计算PostGIS中两条线相交的角度?
我想计算在PostGIS中相交的两条线之间的角度。 PostGIS中角度计算的起点似乎是ST_Azimuth-但这需要点作为输入。我的第一个想法是采用相交线的端点,并对这些端点执行方位角计算。这还不够好,因为大多数线要素不是笔直的,而且我对相交处的角度感兴趣。所以我想出了一个嵌套的操作,它通过以下步骤进行: 识别两个线要素表之间的所有交点。 在相交点周围创建一个非常小的缓冲区 确定线要素与缓冲区外部相交的点(如果有多个点,则取第一个点-我真的只对角度是接近0、90或180度感兴趣) 计算这两点的ST_Azimuth。 完整的SQL有点想在这里发布,但是如果您有兴趣的话,我可以在这里进行介绍。(顺便说一句,有没有比继承WITH语句下的所有字段更好的方法了?) 结果看起来不正确,所以我显然做错了: 编辑我在EPSG:3785中重新计算,结果有些不同,但仍然不正确: 我的问题是此过程中的缺陷在哪里。我是否误解了ST_Azimuth的功能?是否存在CRS问题?还有其他东西吗?也许有很多简单的方法可以做到这一点?
19 postgis  geometry 

5
如何创建PostGIS模板?
我正在按照教程进行安装。但是,当它说 启动pgAdmin并基于PostGIS模板创建一个新数据库 我在哪里可以得到这个Postgis模板?我知道我已经使用自制软件安装了PostGIS。但是我找不到模板。我现在正在运行macOS。
19 postgis  homebrew 


7
将数据从ArcSDE迁移到PostGIS?
有人建议我再问一次这个问题,但措辞可能与如何将多个shapefile批量加载到PostGIS中不同。 我是Postgis和sql的新手,但我想将Postgis用作ArcSDE的从属设备(暂时)。因此,我所需要的是对每晚如何将ArcSDE数据批量上传到PostGIS的帮助。 我可以生成一个Python脚本以每晚将ArcSDE数据导出到SHP,但是我不确定如何将导出的SHP文件批量上传到PostGIS,将postgis中已经存在的文件作为自动化任务覆盖(批处理文件,我猜是)。 我的宏伟计划是及时用PostGIS,QGIS和GeoServer或MapServer替换ArcSDE / ArcGIS。

2
移动PostGIS安装
我在想要移动的旧计算机上运行了postGIS安装。我花了很多时间玩pg_dump和pg_dumpall都没有成功。似乎正常的转储过程不适用于postGIS,因为文件路径在pg_dump的输出中得到了硬编码。关于如何将PostGIS安装移至新的PostgreSQL安装的任何建议?
19 postgis 

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.