【问题标题】:Why a well running view gets zero values in the native bounding box in Geoserver?为什么运行良好的视图在 Geoserver 的本机边界框中得到零值?
【发布时间】:2020-05-01 09:30:39
【问题描述】:

我正在使用远程数据库,并且我拥有作为用户的所有权限。我创建了一个由 5 个表组成的空间关系数据库,其中一个具有几何列。当我尝试仅发布具有 srid GGRS87、EPSG:2100 的几何图形的表时,本机 bbox 计算良好,但是当我尝试从 PostGIS 或通过 Geoserver 创建视图时,本机 BBox 提供值(-1,-1,0,0) 并且 Lat/Lon BBox 没有正确的。数据库中的视图运行正确,合并了所有 5 个表。最后,我注意到当我创建视图时通过 Geoserver,SRID 的列不显示从那里设置它。

PostGIS 和 Geoserver 之间的连接可能会出现什么问题,或者是其他什么? 谢谢!

CREATE VIEW buildings AS
SELECT 
  id_owner,id_building,address_name,address_num,
  region,x,y,closing_file
FROM owner
JOIN owner_property 
  ON owner.id_owner = owner_property.owner_id
JOIN building 
  ON property.building_id=building.id_building;

【问题讨论】:

  • 能否也提供数据?至少一种几何形状,以便我们用真实数据进行测试:)
  • 就像@JimJones 提到拥有更多数据会很有用,例如您在 GeoServer 中使用的 sql 视图。对于我看到的两个字段 x 和 y 都是双倍的,因此拥有 SRID 是没有意义的,换句话说,没有几何字段。
  • @Newstudent 您的select 中的哪些列对应于几何?或者你只有xy
  • 从 x,y 列中,我创建了几何列。上图。
  • @Newstudent 好吧。但是我没有看到您在上面发布的SELECT 中创建的这个几何图形。你有没有试过而不是简单地写SELECT x,y .. 你写SELECT ST_MakePoint(x,y,2100) ..。并尝试再次发布

标签: sql postgresql view postgis geoserver


【解决方案1】:

您的视图似乎没有几何,因此没有 SRS。您很可能忘记将其插入到您的视图中,或者正如您的屏幕截图所示,坐标对分为两列 - xy。所以只需在用于创建视图的查询中使用ST_MakePointxy ..

CREATE VIEW buildings_reinspection_file AS
SELECT 
  id_owner,id_building,address_name,address_num,
  region,inspection_num,reinspection_num,reinspection_date,
  approval_num,ownership_perc,building_assessm,color_tagged,
  construction_type,ST_MakePoint(x,y,2100),closing_file
FROM owner
JOIN owner_property 
  ON owner.id_owner = owner_property.owner_id
JOIN property 
  ON owner_property.property_id = property.id_property
JOIN building 
  ON property.building_id=building.id_building
JOIN financial_assist 
  ON property.financial_assist_id=financial_assist.id_financial_assist;

.. 并尝试在 GeoServer 中再次发布它。如果您在表building 中创建的包含几何图形的列称为point,只需将ST_MakePoint(x,y,2100) 替换为building.point

【讨论】:

  • 如前所述,如果我尝试仅发布具有几何(建筑物)(点)的表格,则原生bbox的计算是成功的!我看到了预览层中的所有点。我的 csv 文件有 x,y 坐标,我从中创建了几何列(点几何(Point,2100))。而且当我创建视图时,5个表的合并是正确的,包括几何。
  • 为什么当视图显示来自五个表的复杂选择时,我必须在视图中插入几何图形,其中一个具有几何列,它以正确的方式显示所有数据和几何图形。
猜你喜欢
  • 2013-03-23
  • 2020-06-10
  • 2019-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 2020-05-28
  • 2011-08-28
相关资源
最近更新 更多