如何放大到 cql_filter 功能?

Posted

技术标签:

【中文标题】如何放大到 cql_filter 功能?【英文标题】:How can I zoomed to the cql_filter feature? 【发布时间】:2019-10-29 09:10:46 【问题描述】:

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

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 数据,该图层仍会覆盖整个世界。 那我怎样才能放大到选中的特征呢?有什么想法吗? 【参考方案1】:

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

要获取单个要素的范围,您需要创建一个包含过滤器的WFS request,然后在返回该要素时缩放到该要素的范围。

【讨论】:

你的意思是cql_filter的WFS请求直接返回那个选择过滤区域的绑定框? 不,它会返回一个带有可以缩放到的几何图形的要素 实际上我的数据集中有 100 多个地区。我想使用 cql_filter 添加它们。我正在尝试将所选功能完全缩放。有可能吗? 是的,获取返回(过滤)特征的几何形状并缩放到它的范围 感谢您的建议。万分感激。我根据本指南制作了WFS request。我无法在我的服务器中使用enable_jsonp(我必须先启用_jsonp,然后才能请求WFS)。 I also asked for help in this link。请帮我找出解决办法。【参考方案2】:

非常感谢大家的帮助。并特别感谢Ina Turton先生帮助我找出实际问题并得到解决方案。我的 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 函数并返回parseJson error。最后我添加了名为requiredArea 的变量。获取该区域的边界并设置所需区域的边界并添加到地图中。

【讨论】:

以上是关于如何放大到 cql_filter 功能?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery如何添加到Jcrop缩放功能

前端编程之页面放大镜功能的实现

前端编程之页面放大镜功能的实现

每次我在前端放大/缩小时,如何以编程方式检查 Altair 图表的放大/缩小功能

CAD中的放大功能在哪里呀,要如何使用?

图片放大功能如何做?jquery实现