【问题标题】:How to enable layerDefs in ArcGIS WMS?如何在 ArcGIS WMS 中启用 layerDefs?
【发布时间】:2019-08-05 14:19:52
【问题描述】:

我正在尝试使用 ESRI 供应商特定的 WMS 参数“layerDefs”,如下所述:

https://enterprise.arcgis.com/en/server/latest/publish-services/linux/filtering-features-using-the-layerdefs-parameter-in-wms-requests.htm

但是,由于示例中的语法破坏了服务,因此我无法使其正常工作(服务器响应“您的浏览器发送了此服务器无法理解的请求”)。这应该有效,但它没有:

https://alaskafisheries.noaa.gov/arcgis/services/ShoreZoneFlexMapService/MapServer/WMSServer?&service=WMS&request=GetMap&layers=53&styles=&format=image%2Fjpeg&transparent=true&version=1.1.1&width=256&height=256&srs=EPSG%3A3857&bbox=-20037508.342789244,0,-10018754.171394622,10018754.171394628&layerDefs={"53":"State='AK'"}

我知道这个服务支持 layerDefs 因为它适用于地图服务:

1) 没有 layerDefs: https://alaskafisheries.noaa.gov/arcgis/rest/services/ShoreZoneFlexMapService/MapServer/export?bbox=-16445389.266341925%2C5254576.417854222%2C-11798017.946604446%2C7896240.115389209&bboxSR=&layers=&layerDefs=&size=&imageSR=&historicMoment=&format=jpg&transparent=true&dpi=&time=&layerTimeOptions=&dynamicLayers=&gdbVersion=&mapScale=&rotation=&datumTransformations=&layerParameterValues=&mapRangeValues=&layerRangeValues=&f=html

2) 使用 layerDefs(底部不包括,因为它在阿拉斯加之外):

https://alaskafisheries.noaa.gov/arcgis/rest/services/ShoreZoneFlexMapService/MapServer/export?bbox=-16445389.266341925%2C5254576.417854222%2C-11798017.946604446%2C7896240.115389209&bboxSR=&layers=&layerDefs=3%3AState%3D%27AK%27&size=&imageSR=&historicMoment=&format=jpg&transparent=true&dpi=&time=&layerTimeOptions=&dynamicLayers=&gdbVersion=&mapScale=&rotation=&datumTransformations=&layerParameterValues=&mapRangeValues=&layerRangeValues=&f=html

注意图片的底部消失了(即被过滤掉了)

在地图服务中它是第 3 层,但 WMS 将它列为第 53 层(不要问,它是 ESRI!)

所以,没有layerDefs的WMS url如下:

https://alaskafisheries.noaa.gov/arcgis/services/ShoreZoneFlexMapService/MapServer/WMSServer?&service=WMS&request=GetMap&layers=53&styles=&format=image%2Fjpeg&transparent=true&version=1.1.1&width=256&height=256&srs=EPSG%3A3857&bbox=-20037508.342789244,0,-10018754.171394622,10018754.171394628

但是当包含 layerDefs 参数时,服务器“不理解”请求。

你知道正确的语法是什么吗?

【问题讨论】:

    标签: wms arcgis-server


    【解决方案1】:

    似乎没有办法在 ESRI WMS 服务中包含 layerDefs 参数。它根本行不通。我四处询问,搜索互联网并测试了我能想到的所有可能的组合。可惜,这么大的公司,在产品的基本功能上磕磕绊绊……还是故意的?然后缺乏文档和基本支持(ESRI 论坛上的问题多年来一直没有得到解答......到目前为止,这篇文章只有少数观点!)

    地图服务选项适用于 layerDefs(如我的问题中所述),所以这就是我现在要做的。不幸的是,它需要额外的编码。而且我再也不会接触任何 ESRI 混合物......

    【讨论】:

      猜你喜欢
      • 2015-08-27
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2021-05-04
      • 2017-06-30
      • 2018-11-11
      • 2020-03-13
      • 1970-01-01
      相关资源
      最近更新 更多