繁体   English   中英

通过地图服务器显示来自Postgis的栅格

[英]Show raster from postgis via mapserver

我想显示数据库中的栅格。 我读过文章如何将PostGIS栅格图层添加到MapServer地图? 并据此创建了映射文件。 我得到500-内部服务器错误。

当我通过PostGIS在QGIS中显示此栅格时,来自mapserver的错误消息为空。 我可以使用mapserver进行读取,以显示来自同一数据库的矢量数据。

你知道如何解决这个问题吗?

带有图层的mapfile的一部分:

LAYER
  NAME eroze_cp

  TYPE raster

  STATUS ON

  DATA "PG:host='localhost' port='5432' dbname='mydb' user='me' password='****' schema='myschema' table='myrast' mode='2'" 

  PROJECTION

    "init=epsg:102067"

  END 

  PROCESSING "NODATA=-9999"

  PROCESSING "SCALE=AUTO"

END

您可以尝试的一件事是在命令行中使用shp2img,以获取有关错误的更多信息。

查看: http : //postgis.net/docs/RT_FAQ.html#idp35570592

您似乎在连接字符串中有多余的引号,尽管我不确定这是否重要。

请参阅Mapserver文档中的带有PostGIS Tile Index for Waster 影像的WMS-T示例( MapServer TILEINDEXes上的另一个示例是Database RASTERS )。 使用Postgis支持的数据库,您可以创建TILEINDEX视图。 然后,将两层添加到mapfile ,如下所示:

平铺索引层:

LAYER
  name raster_tindex
  TYPE polygon
  PROJECTION
    "init=epsg:xxxx"
  END
  CONNECTIONTYPE ORACLESPATIAL
  CONNECTION "user/pass@tns"
  DATA "geom FROM (
    SELECT gid, geom, location 
    FROM my_raster_tindex_table
  ) AS subquery using unique gid USING SRID=4326"
END

第二层是实际的RASTER层

LAYER
  name db_raster_layer
  TYPE RASTER
  PROJECTION
    "init=epsg:xxxx"
  END
  TILEINDEX "raster_tindex"   #THIS NAME MUST MATCH THE TILEINDEX LAYER NAME
  TILEITEM "location"   #not actually needed if column is named location
  STATUS OFF
  OFFSITE 0 0 0
END

您可以通过向db_raster_layer添加FILTER来对TIME进行过滤,就像MapServer docs中的WMS-T示例一样 但是,关于数据属性/属性的FILTER应该存在于Tile索引上(即,在raster_tindex层中),正如Frank Warmerdam在带postgis的ogr tileindex中提到的那样?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM