Questions tagged «postgis»

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

1
配置Geoserver以使用特定的postgis几何列作为默认列
我有一个PostGIS表,其中包含两个几何列,两个均为多边形,一个为SRID 4326,另一个为3857。在Geoserver中发布表时,我意识到Geoserver默认使用列列表中的第一个几何列,但我想知道是否可以将Geoserver配置为使用特定的几何列? 我不是在谈论将SLD配置为使用特定的几何列进行渲染,即: <se:PolygonSymbolizer> <se:Geometry> <ogc:PropertyName>geom3857</ogc:PropertyName> </se:Geometry> … </se:PolygonSymbolizer> 我说的是让Geoserver使用特定的几何列作为本机SRID和默认投影。

1
如何通过postGIS将GeoTIFF导入GeoServer?
作为一个简单的测试用例,我试图配置OpenGeo的软件堆栈,以便可以将GeoTIFF显示为OSM等法线贴图的覆盖图。因此,我执行以下步骤: 使用postGIS创建空间数据库 将GeoTIFF加载到数据库中 将数据库导入到GeoServer 在GeoServer中将其预览为地图叠加层(例如,使用GeoExplorer或OpenLayers) 与将GeoTIFF直接导入到Geoserver(这很困难)相反,从数据库导入的表在GeoServer Web应用程序中被标记为“矢量数据”,而不是“栅格数据”。在图层预览中,GeoExplorer不会显示来自GeoTIFF的任何内容,并且OpenLayers返回WMS文件,报告以下内容ServiceExeption: The requested Style can not be used with this layer. The style specifies an attribute of geom and the layer is: opengeo:test 我相信解决方案非常简单,但是似乎我不明白GeoServer如何解释存储在postGIS中的栅格数据。 有人可以告诉我我想念的点吗? 我的详细步骤: template_postgis按照我在Ubuntu 12.04上进行操作时所记录的postGIS,以模板和端口5432为基础,创建空间数据库。 使用raster2pgsql(http://suite.opengeo.org/docs/dataadmin/pgGettingStarted/raster2pgsql.html)中的命令行从命令行将GeoTIFF加载到数据库中。 raster2pgsql -I -C -s 32632 test.tif public.testTable | psql -d test -h localhost -U opengeo …

1
如何找到用户从给定位置(点)和方向(角度范围)可以看到的建筑物(多边形)?
我想检索从给定位置(点-lat,lng)和方向(角度间隔)+当然可以给定深度(例如100米)看到的一组建筑物。理想情况下,我希望输出如下内容:从角度1到angle2,用户可以看到建筑物1,从角度2到angle3,我们可以看到建筑物2。 数据=在shapefile中代表城市建筑物的多边形。 输入:代表一个人的视觉感知的位置和方向(角度范围)。 输出: 版本1-{BuildingID} 版本2(更好)的列表-{BuildingID,每个建筑物(建筑物的立面)可见段的集合} 的列表版本3(理想输出)-{buildingID,角度范围的列表}。(例如,从角度1到angle2,用户可以看到建筑物1,从角度2到angle3,我们看到建筑物2,依此类推。) 我可以使用的工具箱:PostGis,QGis,ruby,R 输出v1解决方案的开始: -创建一个三角形,代表给定点和方向(角度的间隔)并具有一定的半径/深度(例如100米)的用户的简化视觉范围 -计算与建筑物的交点(例如ST_INTERSECTION )和视觉范围。但是建筑物可以隐藏另一座建筑物,因此视觉范围和建筑物之间的纯交集可能不会添加可见建筑物。这个问题需要解决。 更新:潜在解决方案2- 创建一个三角形,代表给定点和方向(角度的间隔)并具有一定的半径/深度(例如100米)的用户的简化视觉范围-创建不同角度的n条光线(LINE)填补范围。 -将所有建筑物(POLYGONS)转换为SEGMENTS / LINES- 为每条射线找到最接近的SEGMENT和相关buildingID。(ST_DISTANCE,ST_DWithin) 在这个阶段,因此我们应该具有光线列表和相关的建筑物ID。 -然后我们可以汇总此列表{角度范围,相关建筑物ID}。 关于更有效的方法有什么想法吗?
10 qgis  postgis  r  viewshed 

4
是否在没有企业级地理数据库(ArcSDE)的情况下从ArcGIS Desktop编辑PostGIS图层?
我已经使用QGIS / PostGIS已有一段时间了,没有任何问题,但是现在我必须更改QGIS for ArcGIS Desktop 10.1。 我在从PostgreSQL添加一个图层并能够编辑该图层时遇到了麻烦。我想直接与数据库一起使用,如果我更改了地图中的某些内容,则应该反映在数据库中。 没有地理数据库,我可以这样做吗?

1
使用PostGIS从现有表格中的经度/纬度坐标制作POINT?
我想使用现有表格的经度和纬度列创建一个POINT。这是ST_MakePoint文档的链接。 这是我的桌子: CREATE TABLE sysinst.bio ( oid INTEGER PRIMARY KEY, longitude FLOAT, latitude FLOAT, geom GEOMETRY(POINT, 26913) ); 添加几何列: SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2); 这是我的查询: UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913); 尽管在QGIS中查看POINTS时错误绘制了点,但没有返回错误。 对于(-97.5959, 21.1922),我收到(-109.4896, 0.0002) 有什么建议么? 如果有更简单的方法,我愿意更有效地执行此操作。

1
Hibernate Spatial 4和PostGIS 2.0
我在整合这些技术时遇到了一些问题: 休眠空间4.0-M1 PostGIS 2.0.2(使用已编译的JDBC 2.0.2) 休眠4.1.1 具体错误是: Caused by: org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of org.postgis.PGgeometry. Use setObject() with an explicit Types value to specify the type to use. 实体注释为: @NotNull @Column(columnDefinition="Geometry") @Type(type="org.hibernate.spatial.GeometryType") private Point geom; Point创建示例为: Location location = new Location(); WKTReader fromText …

1
在PostGIS中添加拓扑?
我已经安装了PostGIS 2.0,并且需要新的拓扑,但是默认情况下似乎没有安装它。我发现了很多命令行来安装带有拓扑的PostGIS 2.0,但是有没有一种方法可以添加拓扑?
10 postgis  topology 

3
如何获得以平方米为单位的WGS84多边形的面积?
下面以平方度给我了多边形的面积: SELECT ST_Area(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)) As sqm; 结果:16586.2319335938 如何获得以平方米为单位的面积?我尝试了以下方法: SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325.790874952 6105405.3261047,871418.748307692 6105359.72944624,871346.22022442 6105215.141258,871254.85408906 6105261.72007212,871325.790874952 6105405.3261047))',4326)),31467) As sqm; 但是似乎ST_Transform不起作用。我收到以下错误消息: ERROR: function st_transform(geometry) does not exist LINE 1: SELECT ST_Area(ST_Transform(ST_GeomFromText('POLYGON((871325... ^ HINT: No function matches the given name and argument types. You might need to add explicit type …
10 postgis  area  wgs84 

2
使用位于多边形内的点更新数据库行
我有一个PostGIS / Postgresql数据库,其中有两个表。一个具有点几何,另一个将国家边界表示为多边形。我想将每个点相交的国家/地区名称添加到我的点表中的每一行。也许是一大更新查询。我认为可以使用直接SQL来做到这一点,但我不知道从哪里开始。任何对此的建议将不胜感激...


2
是否可以使用Nominatim对街道交叉口进行地理编码?
是否可以使用Nominatim对街道十字路口的位置进行地理编码? 地理编码查询示例 Commonwealth Ave at Washington Street, Boston, MA Google成功的地理编码 https://maps.google.com/maps?q=Commonwealth+Avenue+at+Washington+street,+Boston,+MA&hl=en&sll=42.351351,-71.118573&sspn=0.054868,0.132093&t=h&hnear=Commonwealth+Ave+%26+Washington+St,+Boston,+Suffolk,+Massachusetts+02135&z=17 Nominatim的地址解析失败 http://nominatim.openstreetmap.org/search.php?q=Commonwealth+Ave+at+Washington+Street%2C+Boston%2C+MA&viewbox=-337.5%2C85.34%2C337.5%2C-80.5

5
如何在交叉路口将OS​​M道路分割为单个路段?
我想使用OpenStreetMap数据创建一个用于pgRouting的道路网络。我从GeoFabrik将shapefile加载到Postgres表中(启用了PostGIS)。但是,我遇到的一个问题是道路并不总是在十字路口处终止,因此我决定在每个十字路口或十字路口将其全部拆分。 要找出所有地方的道路交叉或相交我用下面的interesections SQL(类似于以前的问题): CREATE TABLE split_points as SELECT DISTINCT ST_GeometryN(ST_Intersection(a.geom, b.geom),1) as geom FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom) OR ST_Crosses(a.geom, b.geom) AND a.gid != b.gid GROUP BY ST_Intersection(a.geom, b.geom); 我现在想利用这些点来分路。我使用以下方法: CREATE TABLE split_roads as SELECT ST_GeomFromEWKB((ST_Dump(ST_Split(g.geom, blade.geom))).geom) As geom, generate_series(1,ST_NumGeometries((ST_Split(g.geom, blade.geom)))) as gid FROM split_points …

3
从PostgreSQL数据库中仅选择空间表?
我的数据库同时包含空间表和非空间表,但是我只想从查询中检索空间表。 任何仅选择空间表的建议。“ the_geom”是空间表中的几何列。 否则,可以从其列名中选择表。 我尝试使用此代码select relname from pg_stat_user_tables WHERE schemaname='public';但是从中我们得到所有的表名。

2
如何在GDAL / OGR Python绑定中捕获PostgreSQL / PostGIS错误?
查询失败后是否可以在OGR中捕获PostgreSQL输出错误消息? 例如 conn.ExecuteSQL('SELECT * FROM non_existing_table;') 在Postgres中,这将返回错误消息: "Error: relation 'non_existing_table' does not exist." 在ogr中,我们获得了标准: "Error: current transaction is aborted, commands ignored until end of transaction block" 如果我们能够捕获/解析Postgres错误消息,那将是一个额外的好处。考虑到我对SWIG / CPL的了解,我怀疑这有点长远,但是值得一问,看看是否有人有想法。理想情况下,这将是在Python中进行,但是我也会接受C / C ++注释! 谢谢。

3
按百分比增长PostGIS几何
我正在寻找一种在PostGIS几何周围添加缓冲区的方法,但是缓冲区的大小应取决于几何的大小。也就是说,我希望每个几何图形都扩大5%。 我的想法是我正在寻找相交的几何,但是我想考虑的每个几何可能有多达5%的误差。 有人知道最好的方法吗? 该数据库的行数为一百万行,因此我希望它的运行速度相当快。

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.