Questions tagged «postgis»

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

2
如何检查我拥有哪个版本的GDAL?
我在计算机上安装了以下软件: PosgresSQL 9.3.2.3 PostGIS 2.1.1.1 QGIS 2.0.1 Dufour(通过OSGeo4w软件包安装的一个) QGIS 1.7.0弗罗茨瓦夫 据我所知,它们都以某种方式操作,使用或访问GDAL库。 因此,是否根据我使用的上述软件之一使用了GDAL的独立版本?例如,如果我打开OSGeo4W Shell,则在加载批处理后立即显示: GDAL 1.10.1, released 2015/02/10 那么,如何检查其他GDAL版本并进行比较? 有什么办法可以集中所有这些内容,并强制应用程序使用相同的集中文件夹?

2
寻找用于2亿个点的多边形分析中最快的解决方案[关闭]
我有一个包含2亿个观测值的CSV,格式如下: id,x1,y1,x2,y2,day,color 1,"-105.4652334","39.2586939","-105.4321296","39.2236632","Monday","Black" 2,"-105.3224523","39.1323299","-105.4439944","39.3352235","Tuesday","Green" 3,"-104.4233452","39.0234355","-105.4643990","39.1223435","Wednesday","Blue" 对于每组坐标(x1 / y1和x2 / y2),我想分配它所属的美国人口普查区或人口普查区(我在此处下载了人口普查区TIGER形状文件:ftp : //ftp2.census.gov/ geo / tiger / TIGER2011 / TRACT / tl_2011_08_tract.zip)。因此,我需要为每个观察做两次多边形点操作。比赛必须非常准确。 最快的方法是什么,包括花时间学习软件?我可以访问具有48GB内存的计算机,以防万一这可能是一个相关的限制。 有多个线程建议使用PostGIS或Spatialite(Spatialite看起来更易于使用-但它与PostGIS一样有效吗?)。如果这些是最佳选择,是否必须填充空间索引(RTree)?如果是这样,怎么做(例如使用人口普查道Shapefile)?对于包含示例代码(或示例代码的指针)的任何建议,我将不胜感激。 我的第一次尝试(在找到此站点之前)包括使用ArcGIS对美国人口普查数据块的数据(100,000点)的子样本进行空间连接(仅x1 / y1)。在我终止该过程之前,花了5个多小时。我希望可以在不到40小时的计算时间内对整个数据集实施的解决方案。 很抱歉提出之前提出的问题-我已经阅读了答案,但不知道如何实施建议。我从未使用过SQL,Python,C,并且以前只使用过一次ArcGIS-我是一个完整的初学者。

4
SQL查询是否具有PostGIS的完整geojson功能?
我想从PostGIS获得带有属性的geojson功能。我找到了一个具有功能部件集合的示例,但是我不能使其仅适用于功能部件。 SELECT row_to_json(fc) FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features FROM (SELECT 'Feature' As type , ST_AsGeoJSON(lg.geog)::json As geometry , row_to_json(lp) As properties FROM locations As lg INNER JOIN (SELECT loc_id, loc_name FROM locations) As lp ON lg.loc_id = lp.loc_id ) As f ) As fc; 到目前为止,我尝试修改示例的要素收集查询。但输出无效。

4
将多个shapefile批量加载到PostGIS中
我已经有一百多个shapefile格式的数据层,我想上传到PostGIS数据库中。它们都在同一投影中,但是代表不同的数据层,因此它们没有相同的架构。 将所有这些文件批量转换为PostGIS数据库(在Windows 7 OS上)的最省时方法是什么? 更新:现在默认情况下,PostGIS 2.0可以批量导入pgAdmin3“ PostGIS shapefile uploader”(如下所述)。

4
如何将GeoJSON多边形插入PostGIS表?
我需要将GeoJSON中的多边形插入到PostGIS表中。这就是SQL查询的样子。 INSERT INTO tablename (name, polygon) VALUES ( 'Name', ST_GeomFromGeoJSON( '{ "type": "Polygon", "coordinates": [ [7.734375,51.835777520452], [3.8671875,48.341646172375], [7.20703125,43.580390855608], [18.6328125,43.834526782237], [17.9296875,50.289339253292], [13.7109375,54.059387886624], [7.734375,51.835777520452] ] }' ) ) 不幸的是,我收到一条错误消息。 ERROR: Geometry SRID (0) does not match column SRID (3857) GeoJSON已经在正确的参考系统中。但这没有指定。如何在GeoJSON中指定SRID?GeoJSON需要什么样? 更新:当我包装由此创建的几何时ST_GeomFromGeoJSON,ST_SetSRID(..., 3857)会引发另一个错误。在我看来,几何图形似乎没有Z尺寸。 ERROR: Geometry has Z dimension but column does not



1
如何在PostGIS中将多边形从多边形转换/类型转换为多边形?
有什么方法可以将多边形转换为多面体类型? 例如,我在点上使用ST_Buffer()创建了一个圆。该函数的返回类型为Polygon类型。问题是,在几何列上有一个限制将其限制为Multipolygon类型。因此,我无法插入简单的多边形。 我已经使用过ST_MPolyFromText()函数,但是像往常一样,它为此返回null,而ST_Dump()没有给出正确的输出。 约束是: CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),
30 postgis 


2
将shapefile添加到PostGIS数据库
我能够创建一个Postgresql数据库,然后执行 createlang plpgsql geospecies psql -d geospecies -f postgis.sql psql -d geospecies -f spatial_ref_sys.sql 现在可以直接导入shapefile了吗?这是正确的命令吗? ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp; 我不确定如何构建数据库,是否不需要表?我最终将需要添加一堆shapefile,因此是否有执行此操作的命令?

6
QGIS,Postgis:几何类型与列类型不匹配
我正在尝试通过SPIT将一些多边形shapefile导入QGIS中的Postgis。其中之一无法导入并返回此错误: ERROR: Geometry type (Polygon) does not match column type (MultiPolygon) 我试图将SPIT widnow中该表中的属性“功能类”从MULTIPOLYGON更改为POLYGON,但没有任何反应。 有什么方法可以使Postgis接受两种类型(多边形和多面体)?或者,也许我能以某种方式将shapefile的几何形状从多边形转换为多多边形?有任何想法吗? 我在Windows中尝试过Qgis 2.0.1,在ArchLinux中尝试过Qgis 2.3。
30 qgis  postgis  database 

4
什么时候不应该使用空间索引?
我之所以这样问是因为我主要在Oracle上工作,但是在过去的一年中,我一直在使用PostGIS和SQLServer 2008翻倍。如果空间索引不返回ORA-13226错误,Oracle的大多数空间功能将无法工作: 13226,00000,“没有空间索引将不支持接口” // *原因:几何表没有空间索引。// *操作:验证在空间运算符中引用的几何表是否具有空间索引。 对我来说,这很有意义。您运行空间查询=您必须具有空间索引。但是据我了解,PostGIS和SQL Serve都不需要这样做。PostGIS甚至似乎具有明确不使用空间索引的功能(_ *,例如_STContains)。 所以问题是-在任何情况下都不应该使用空间索引?不一定是“采用还是放弃”方法,即不会有任何区别,但是不使用空间索引会降低性能吗?对我而言,最后一句话在用语上是矛盾的,但是为什么PostGIS会提供这些功能呢?

4
如何获得线串上最接近给定点的点?
我已经使用PostGIS很长时间了,但是从未使用过LINESTRING几何...!:) 这是我想做的:我有一个线串表(代表给定城市的街道,SRID 3395),我想找到最接近给定点的线串(GPS位置,SRID 4326)。 我发现的解决方案是使用expand()方法选择我的点内的所有线串,并使用方法确定每个线串与我的点之间的距离ST_Distance()。 这是SQL: SELECT myLineId, myLineName, ST_Distance(ST_Transform(GeomFromText('POINT(LON LAT)',4326),3395),myLineGeom) AS myLineDistance FROM myLines WHERE myLineGeom && expand(ST_Transform(GeomFromText('POINT(LON LAT)',4326),3395), 100) ORDER BY myLineDistance; 我得到的结果看起来还可以,但是我感觉我的实现中有问题。 1)你们认为expand()可以获取所有有关的线串吗? 2)你们认为ST_Distance()正确的使用方法是吗?我想我做错了,因为我想得到的距离是点与线之间的最小距离,而不是点与线串中的点之一之间的距离。 插图:
28 postgis 

6
如何更新ogr2ogr以包括PostgreSQL驱动程序?
我正在尝试使用ogr2​​ogr将shapefile上传到远程PostGres安装。当我运行此命令时: celenius:~ celenius$ ogr2ogr -f PostgreSQL PG:"host=255.34.00.00 user=postgres dbname=mydb password=***" Dropbox/data/roads.shp; 我收到以下错误消息: Unable to find driver `PostgreSQL'. The following drivers are available: -> `ESRI Shapefile' -> `MapInfo File' -> `UK .NTF' ... -> `SVG' -> `CouchDB' -> `Idrisi' -> `ARCGEN' -> `SEGUKOOA' -> `SEGY' (我省略了一些无关紧要的驱动程序)。有没有一种方法可以更新ogr2ogr以包括PostgreSQL?我正在使用OS 10.7.4的Mac

6
处理遍布UTM区域的数据?
我有分布在两个UTM区域GDA / MGA94 UTM区域55和56上的数据。我有诸如地籍,道路,管道等图层,我想在其中存储长度和面积(以米为单位)或某种度量标准表示法等度量,而不是度! 在PostGIS中管理此问题的最佳方法是什么(我使用的是PostGreSQL 8.4 PostGIS 1.5)?我是否应该将数据存储为GDA94地理坐标,并使用某种替代方法来计算所需的测量值?还是有另一种方法来解决这个问题?

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.