如何缩放到 cql_filter 功能?

How can I zoomed to the cql_filter feature?

我正在使用地理服务器。我写了下面的代码;

const mywms = L.tileLayer.wms("http://localhost:8080/geoserver/taj/wms", {
    layers: 'taj:country',
    format: 'image/png',
    CQL_FILTER: 'name=pana'
    transparent: true,
    opacity: 0.4,
    version: '1.1.0',
    attribution: "country layer"
});

一切都很好。该层被过滤。但我需要选定的功能才能完全扩展。 我尝试使用此代码将 mywms 层居中; map.fitBounds(mywms.GetBounds());。但它显示了错误; mywms.getBOunds is not a function。有帮助吗?

正如评论中所指出的,WMS 请求在请求中包含地图的边界框,因此将始终覆盖整个地图区域。

要获得单个地图项的范围,您需要制作一个包含过滤器的 ,然后在返回时缩放到该地图项的范围。

非常感谢大家的帮助。特别感谢 Ina Turton 先生帮助我找出实际问题并获得解决方案。我的 url 的 wfs 服务器看起来像这样;

http://localhost:8080/geoserver/tajikistan/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=taj%3Acountry&maxFeatures=50&outputFormat=application%2Fjson

我编写了以下代码来放大我的 cql_filter 区域:

//Geoserver Web Feature Service
$.ajax('http://localhost:8080/geoserver/wfs',{
  type: 'GET',
  data: {
      service: 'WFS',
      version: '1.1.0',
      request: 'GetFeature',
      typename: 'tajikistan:country',
      CQL_FILTER: "name_rg='Centre'",
      srsname: 'EPSG:4326',
      outputFormat: 'text/javascript',
      },
  dataType: 'jsonp',
  jsonpCallback:'callback:handleJson',
  jsonp:'format_options'
  });


function handleJson(data) {
    var requiredArea = L.geoJson(data).addTo(map);
    map.fitBounds(requiredArea.getBounds())
}

在这段代码中,CQL_FILTER用于过滤出所需的区域。在我的例子中,列名 name_rg 的数据具有 属性 作为 Centre。我使用此代码查询该区域。我使用 ajax 方法获取数据。我编写的代码有点棘手,因为常规 ajax 调用不会回调 handleJson 函数和 return 一个 parseJson error。最后我添加了名为 requiredArea 的变量。获取此区域的边界并设置所需区域的边界并添加到地图中。