Questions tagged «postgis»

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


3
如何获得点与多边形最近部分之间的距离和方位?
如果这看起来有点简单或显而易见,我对编写SQL和使用PostGIS表示歉意。我有一张保存在postGIS数据库中的面要素表,我需要编写一个SQL查询以选择所有属性,面要素的距离和方向在预定义点的一定距离内。我设法选择了特征并计算了距离(使用ST_Distance),但是无法计算出方位角。 这是我到目前为止使用的脚本: SELECT *, ST_Distance (Geometry, ST_GeomFromText ('POINT(292596 90785)', 27700)) FROM mytable WHERE ST_DWithin( Geometry, ST_GeomFromText('POINT(292596 90785)', 27700), 250) 如何计算特征的方位以及距离?
9 postgis 

2
census.gov shapefile的SRID是什么?
我从以下位置下载县文件: http://www.census.gov/cgi-bin/geo/shapefiles2011/main 我不知道要与它们一起使用什么SRID。当我尝试从中生成类文件时./manage.py ogrinspect ...,我-1在多边形字段中获得了SRID 。我认为这是不对的。 GDAL给我的Proj4的+proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs。 我知道SRID -1表示未知。那会不会使我的几何形状失效?如何确定要使用的SRID? 我真的是GIS新手。我已经想念地球平坦的日子了。 这也可能有用: SELECT PostGIS_full_version(); postgis_full_version ------------------------------------------------------------------------------------------------------- POSTGIS="1.5.3" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.7.8" USE_STATS (1 row) >>> import django >>> django.VERSION (1, 4, 0, 'final', 0)

3
在整个架构的PostGIS中创建空间索引
我已经使用SPIT(QGIS插件)将许多shapefile加载到了PostGIS数据库中。这些图层在加载时没有创建空间索引。我想知道是否有一种方法可以为架构中的每个层创建一个空间索引,而无需为每个层编写查询。我不是一名优秀的PostGIS脚本编写者,因此将不胜感激。 谢谢

1
QGIS与PostGIS中的一对多关系
有谁知道可以在QGIS中建立一对多关系的工具吗? 我的数据保存在PostGIS数据库中。我希望能够查询与空间或非空间表相关的空间层,反之亦然。我相信ArcGIS 9.x中有一种方法可以做类似的事情。

2
如何加快Postgis中的空间划分?
我有一堆重叠的多边形,并且我试图对空间进行分区以避免重叠的多边形。我认为我的问题很简单。我的同事使用一些ESRI产品和http://arcscripts.esri.com/details.asp?dbid=16700进行了48秒钟的计算。 我正在尝试使用http://s3.opengeo.org/postgis-power.pdf#page=24(使用http://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology来猜测详细信息)作为灵感),但它是如此之慢,以至于我无法使用10个以上的多边形(我已经分解了800个)。最慢的部分是ST_Union,我尝试了各种方法,但是没有成功的地方,这是当前的状态: select geom from (select st_linemerge(st_union(geom)) as geom from (select st_exteriorring((st_dumprings((st_dump(t.geom)).geom)).geom) as geom from (SELECT geometry AS geom, id FROM tt WHERE campaign_id = 204 ORDER BY id limit 200) t) t2) t3 这已经计算了26分钟(linemerge()实际上不是)。如果st_dump困扰您,则多边形是MultiPolygons。 你有小费吗?线条的st_union()是非常慢的部分。 谢谢, 尼科 PS:这是一些数字:852个多边形,导致14880个多边形,导致21467个线串,总计315513个顶点。

1
如何从Postgis DB中的现有表(应用新模式)创建表?
我有一个已启用地理空间的表格;包含世界边界。我想将其分解为不同的模式(全球,欧洲等)。我的想法是使用看起来像这样的东西: CREATE TABLE europe.borders AS (SELECT * FROM wo_borders WHERE admin_lvl2='eu' ); //just an example! 从现有表创建表并考虑新模式并使其在地理空间上启用,这是正确的做法?我是否必须使用默认的postgis模板预先创建新表?

1
如何简化线路网络的保留拓扑?
我有一个Shapefile(由欧洲主要道路组成),其中包含大约250.000个路段,为了进行注浆,我必须对其进行简化。但是我似乎找不到适当的方法。 看起来是这样的: 它应该是这样的: 我必须以某种方式删除连接到少于3条线(不是交叉点)的线的每个点,同时保留其余点之间的拓扑连接。如果有人有想法,将不胜感激! 最好的祝福 编辑:我试图实现@dkastl的想法,并设法通过下面的代码从网络中仅获取不需要的节点(只有2个相邻线串的节点)(网络生成来自underdark的博客http://underdark.wordpress.com / 2011/02/07 / a-beginners-guide-to-pgrouting /): SELECT * FROM (SELECT tmp.id as gid, node.the_geom FROM (SELECT id, count(*) FROM network JOIN node ON (start_id = id OR end_id = id) AND (end_id = id OR start_id = id) GROUP BY id ORDER BY id) as …

1
如何使用Postgis执行邻近搜索?
我下载了Geonames数据库(cities1000),并编写了一个小的Ruby程序,将其导入到我的表(geo_cities)中。然后,我添加了名为的地理列geog。 然后,我使用以下命令将所有经纬度数字转换为geog列: update public.geo_cities set geog = st_GeogFromText('SRID=4326;POINT(' || longitude || ' ' || latitude || ')'); 事情看起来很好。现在我要做的是找到布拉格100英里范围内的所有城市。 所以我可以像这样获得布拉格: select * from geo_cities where asciiname = 'Prague' and countrycode = 'CZ'; 我仍在学习GIS和Postgres,所以有人可以通过简单查询来帮助我吗?

4
如何解决PostGIS ST_Intersects中的性能问题?
我是Postgis的新手,查询性能有问题。 这是我的查询: SELECT DISTINCT ON (userid) userid ,ST_AsText(position), timestamp FROM table1 WHERE ST_Intersects ( ST_GeomFromText('a multiypolygon geom goes here',4326),position) ORDER BY userid, timestamp desc 问题是我的multipolygon包含非常大的多边形(word文档中有600页长!),执行时间超过2个小时! 有没有一种方法可以优化我的查询或使用另一种方法? 请您的帮助,万分感谢!

3
在PostGIS或GRASS中的公共属性上分解或取消分割线?
我有一个道路中心线shapefile,该道路的每个交叉点处都有道路被分割。但是,我想将具有共同属性集的LINESTRING加入单个LINESTRING中。只要名称,速度限制等不变,我就希望将它们合并在一起。这是为了最终合并到OpenStreetMap中。 Esri的ArcGIS for Desktop软件似乎通过Dissolve命令和UNSPLIT_LINES选项允许这样做。 我还在QGIS中找到了Dissolve命令,但它似乎仅适用于多边形和单个字段。 假设QGIS不存在,有谁知道如何在PostGIS或GRASS中做到这一点?

2
PostGIS ST_Buffer半径帮助
我正在尝试查找给定点五英里半径内的所有点。我有这样的查询: SELECT * FROM table WHERE ST_Contains(ST_Buffer(geomFromText('POINT(0 0)', 4326), ?), latlon) 我想不出要代替?(半径)以获得五英里的东西。一切都在EPSG 4326中,根据PostGIS文档(据我所知),我的半径应该以米为单位。如果我投入12,070.0m(约5英里),我将在全国范围内进行比赛。有人知道我在想什么吗?

2
在PostGIS中存储GML表面
我正在使用PostGIS 2.0.0,并希望以一种允许计算该曲面与各种点和线之间的交点的方式存储GML曲面。在我的情况下,Surface将具有一个没有内环的PolygonPatch和一个外环,外环可以是LineStringSegment,Geodesic,Arc或Circle。距离可以在几十到数百英里的数量级。我看到PostGIS具有CIRCULARSTRING和CURVEPOLYGON,这似乎是存储Arc的一种好方法,只是geography类型不支持它们geometry。最好的存储方式是什么?(我一般对PostGIS和GIS还是陌生的,所以很可能我遗漏了一些明显的东西。)

4
重命名postGIS表并更新GeoServer?
我想重命名我的postGIS表之一。但是,当我通过应用一个简单的 ALTER TABLE old_name RENAME TO new_name; 据我了解,空间数据不会使用新名称进行更新。首先,可以通过运行函数来修复这些引用: SELECT probe_geometry_columns() 之后桌子本身还可以吗?还是应该采取其他措施?其次,如何更新GeoServer以便找到该新表?到目前为止,如果我运行上述命令,然后在GeoServer上编辑图层信息以指向新名称...,我仍然会收到错误消息(GeoServer仍尝试使用旧名称查找它)。确实,在GeoServer上应该在哪里更改图层名称?

3
在GeoDjango中将多边形归纳为MultiPolygons?
我models.PolygonField使用postgres作为数据库在geodjango中建立了一个模型。我尝试将shp导入postgres。问题是,shp(与QGIS编译)混合了多边形和多面体,因此由于约束检查而总是无法导出enforce_geotype。 有没有一种方法可以清除约束,以便同时存储多面和面类型数据?

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.