Questions tagged «postgis»

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

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
如何使用PostGIS处理复杂的地理处理工作流程?
我们的组织正在考虑将地理处理工作流移至PostGIS。我们目前正在使用ArcGIS,并在ModelBuilder中使用了大量自定义Python工具。我们正在将大部分数据移至PostGIS中,以供各种应用程序使用,现在我们要问的是,在该处执行数据处理是否也有意义。 我们处理数据以使其与我们的软件兼容。客户购买了我们的软件,向我们提供了他们的数据,然后我们对其进行处理以进行优化以用于我们的软件。这就要求我们构建各种工具来处理各种质量的输入数据。我们不能期望以特定的格式或架构接收数据,因此我们构建了将输入字段映射到输出字段,将单个字段解析为多个字段,合并多个数据集等的工具。我们还执行空间连接,相交,修剪空白和连接字段以及许多其他常见操作。PostGIS似乎完全能够满足我们的所有处理需求。 对于那些使用PostGIS进行数据处理的人,您是否对组织,使用工具等有任何建议? 结合QGIS python处理使用它吗? 人们使用Python ORM进行非Web处理吗?我一直倾向于使用GeoDjango,因为它具有适用于PostGIS的Python ORM。我们使用PostGIS处理数据的初步测试在Python代码中包含许多大型SQL文本块,并且我们认为GeoDjango ORM可能有助于创建更易管理和可读的代码。还有一个GeoAlchemy ORM与PostGIS类似地交互,并且似乎不像Django那样特定于Web。 我没有听说像使用QGIS或ArcGIS的人那样使用PostGIS进行地理处理,所以我想知道它是否是可比的替代方案。


3
如何设置和使用远程GIS工作站(QGIS,GRASS,PostGIS)?
我的论文项目是在2009 MacBookPro上使用QGIS(有时是GRASS和PostGIS)。 我想知道(在QGIS中进行无数次批量推广期间)是否可以设置服务器,以便可以使用更快的家用台式工作站的力量在图书馆/大学中工作。 到目前为止,我了解: 我可以通过QGIS访问远程PostGIS服务器 即使使用GUI,我也可以通过SSH运行GRASS GDAL具有PostGIS驱动程序,但它仅用于查询和插入数据,其余工作由发出命令的机器完成(或者我错了吗?) PostGIS的基本编辑可以通过QGIS进行,我可以发出SQL命令进行一些更高级的编辑 我想弄清楚的是: 我可以远程使用QGIS插件吗?VNC是实现这一目标的唯一方法吗? 除了创建和可视化地图外,是否还有一些PostGIS + QGIS文档(我只找到了这些类型的教程)?我可以使用哪些工具/插件,哪些可以远程运行? 更新: 大家都证实了我对QGIS的想法,如果我想使用服务器的处理能力,则必须通过VNC / RDP / NX对其进行控制。 关于我的第二个问题,让我重新 表述一下:如果我使用postGIS + QGIS,并且希望所有处理都在服务器上完成,我是否必须(学习并)仅使用带有postGIS函数的SQL查询?

2
PostGIS插值/三角剖分选项
我正在寻找一个开源的工作流程来自动化DEM的构建。我们有一系列属于LIDAR数据集的站点。我们想要为每个站点创建站点特定的DEM,并且正在寻求使过程自动化。 到目前为止,我们已经实现了自动化: 数据加载到PostGIS中(激光雷达和站点点) 创建站点边界(st_buffer和st_envelope的组合) 现在,我们正在寻找在每个站点上插值数据子集并将其导出到Surfer7网格文件的选项。 当前,我们正在使用QuantumGIS查询PostGIS数据库中的数据,导出到csv文件,然后在Surfer7中手动导入和网格化数据。希望我们也可以使它自动化。 因此,对于此用例,我们希望将激光雷达数据三角剖分为DEM。我们可能想到的其他潜在情况涉及不同的插值方法-因此,如果有用于反距离和克里金法的选项-我们很感兴趣! 对我们来说,这是一个非常学习的练习-我们正在逐步进行中!


1
如何在Postgis中获取多边形质心
我有带有列名称,纬度和经度的表。我想用多边形名称及其质心的纬度经度更新此表。我知道postgis st_centroid(geometry)中有一个函数。但是我想在单独的栏中输入x值和Y值,该怎么办?

2
空间启用的Postgres数据库
我正在尝试创建一个启用空间的PostGIS数据库。我正在遵循PostGIS文档http://postgis.net/docs/manual-1.5/ch02.html#id2648455。 在简短的版本中,我执行了 createdb yourdatabase createlang plpgsql yourdatabase 但是我没有执行最后三个命令, psql -d yourdatabase -f postgis.sql psql -d yourdatabase -f postgis_comments.sql psql -d yourdatabase -f spatial_ref_sys.sql 我的数据库还在空间上启用吗?如果没有,那么您能告诉我这些.sql文件的位置,以便执行最后的命令,因为出现以下错误, postgis.sql: No such file or directory 我正在使用Ubuntu 12.04

6
专用Web应用程序的免费地图服务
背景 希望在网页上显示地图(仅供内部使用)。该应用程序必须能够添加自定义图层(无需将数据发送到地图服务主机): 市政区域(由shapefile定义) 自定义区域(由多边形定义,可能以市政区域为单位) 站点位置(经纬度定义) 其他城市数据(由形状文件定义) 由于是私人企业,因此消除了许多地图服务,包括:Google Maps,Bing,Yahoo!。地图,MapQuest和其他付费使用服务。 更新#1 也许MapQuest是有可能的。 更新#2 我忘记提及的要求: 还有其他数据(城市,城镇,小村庄)不是OpenStreetMap的一部分。必须包括这些城市,而无需将数据提供给地图提供商。 在不告知地图提供者在哪里可以找到数据(即数据将位于防火墙之后)的情况下,也必须显示各种层(例如员工位置)。 目前的发展 目前,我找不到能满足我要求的服务器,因此我一直遵循各个网站上的说明来安装Mapnik Web服务器: http://dbsgeo.com/foss4g2010/html/_static/pdf/osm-rendering-foss4g2010.pdf http://osgeo.org.cn/l18n/geodjango/install.html http://wiki.openstreetmap.org/wiki/Mapnik/安装 http://www.postgresonline.com/journal/archives/180-pgAdmin113plugins_postgis.html http://blog.geoserver.org/2009/01/30/geoserver-and-openstreetmap/ http://workshops.opengeo.org/stack-intro/postgis.html 将多个shapefile批量加载到PostGIS中 在这一点上,我有各种数据: 城市和市政数据(加载到PostGIS中的图形文件) 自然地球数据(形状文件;未加载) Mapnik样式表(各种文件;未加载) 地理服务器 我尝试安装GeoServer(Mapnik之前的版本),但发现缺少文档,基于Web的管理工具配置起来很麻烦,并且2 GHz机器上的响应速度非常慢(用10秒钟渲染带有单层:道路)和默认的审美平淡。(我知道我可以使用样式表来丰富演示文稿,但这意味着必须查找[或创建!]合适的文件,进行安装,测试,等等。) 要求 技术要求包括: 城市,道路,水域(湖泊,河流,海洋) 政治界限(省,国家) 高质量(外观类似于Google Maps,MapQuest等) 正常运行时间长 900913投影(类似于Google地图) 自适应磁贴(每个磁贴少于0.1秒) 出色的加拿大街道数据覆盖 适用于滑动地图(与OpenLayers兼容) 每天10,000个磁贴请求 免费用于商业(或私人)用途,或每年少于$ 2000? 好的例子 这是我要实现的一个很好的例子(OpenLayers): 错误的例子 我不希望实现的示例: 不完整数据的示例: …

5
什么是服务PostGIS功能的最快(性能方面)的方法?
我对提供PostGIS功能的最快方法感兴趣。我可以找到一些WMS改进和替代方法(MapProxy,TileCache,Mapnik ...),但是没有那么多WFS开源改进和替代方法。我对图块不感兴趣,但对基础层上的多边形不感兴趣。服务迅速。 您能请我指出正确的方向吗? 更新: 我忘了提及我的应用程序显示地籍信息。并且地籍多边形必须是可选择的(不可编辑,仅在单击时才突出显示)。 我现在使用的是WMS + Django的混合形式,当用户单击地图的一部分时,它会生成GeoJSON对象,以避免客户端(OpenLayers)同时出现数千个多边形的情况。 我不知道自己的方法是否正确(是否应该通过WMS或其他解决方案来渲染潜在的困难情况,例如客户端中成千上万个pol?我应该改善多边形的投放方式吗?)
12 postgis  wfs  features 

3
空间数据库的未来?
这可能有点题外话。我很想知道空间数据库在行业中的重要性。 空间数据库是任何GIS系统中非常重要的一部分吗?还是我们会在不久的将来使用其他技术来存储和检索空间数据? 我想知道这些事情,因为很快我将继续学习空间数据库优化方面的MS。

2
在一个查询中使用PgRouting获得多个最短路径?
我想一次在多个源和目标对上运行最短路径算法,并获得结果表,然后对其进行处理。 我该怎么做呢?该查询不起作用: SELECT a.source, a.target, paths.* FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths; ERROR: function expression in FROM cannot refer to other relations of same query level (顺便说一句,all_to_all并不是字面意思,:)只是一些随机对。 这也不起作用: SELECT * FROM all_to_all a, ( SELECT * FROM shortest_path_astar('...', a.source, a.target, false, false) yyy ) AS t2;

5
加快OpenStreetMap PostGIS查询
我使用渗透模式将荷兰的OpenStreetMap数据加载到PostGIS数据库(PostgreSQL 8.3 / PostGIS 1.3.3)中。这意味着所有标签都存储在hstore字段中。除了渗透在几何字段上创建的GIST索引之外,我还在标签字段上创建了另一个GIST索引。 尝试同时使用空间约束和标签字段约束进行查询时,我发现它比我想要的要慢。这样的查询: SELECT n.geom,n.tags,n.tstamp,u.name FROM nodes AS n INNER JOIN users AS u ON n.user_id = u.id WHERE tags->'man_made'='surveillance' AND ST_Within(geom, ST_GeomFromText('POLYGON((4.0 52.0,5.0 52.0,5.0 53.0,4.0 53.0,4.0 52.0))',4326)); 需要22秒才能返回78条记录。 该表中有大约5300万条记录。 有没有办法大大加快这一步?我听说hstore在PostgreSQL 9中的实现明显更好,升级是否有帮助?

4
对于PostGIS数据库,什么是合适的全局/通用唯一标识符?
我已经读到,在Ogres作为PostgreSQL / PostGIS数据库中的主键是不好的做法,因为在某些情况下可以重置OID。听起来合乎逻辑,但是什么是合适的选择?我相信可以使用“ Universal Unique Identifer” UUID,但是随即出现的大文本和数字值太可怕了。 我的情况仅需更多背景知识。我用一个名为“ gid”的字段创建了所有空间表,这是该表的主键,并且仅对该表唯一。我现在遇到一个问题,因为我想将我的空间表(所有以“ gid”字段从1开始并递增)关联到一个包含相关信息的大表。显然,要使我的关系正常工作,我所有的空间特征都需要一个唯一的标识符,以将它们彼此区分开。 编辑根据彼得斯的评论添加了这张图片。彼得,这就是我的想法,这可能不是解决问题的最佳方法,甚至可能不是好的数据库设计。我对您的想法感兴趣。 有小费吗?

2
通过PostGIS的边界框选择
我在PostGIS数据库中有一个很大的数据集。我正在通过将数据加载为GeoJSON的Web界面查看它。太多的数据无法一次全部提供给客户端(价值10兆MB ...),所以我想在由窗口边缘形成的边界框内获得一个数据区域(下图中的虚线) )。获取点f和g的坐标很容易。 问题1:这是做事的好方法吗?我应该考虑将它们缓存为图块还是此方法可能足够有效? 问题2:如何仅检索此边界框中的数据? 问题3:如果形状与边界框的边缘重叠(例如下面的形状A),是否有一种简单的方法可以像在第二幅图像中一样查询它时对其进行裁剪?
12 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.