【问题标题】:leaflet.js wms layer zoom not working on double clickLeaflet.js wms图层缩放在双击时不起作用
【发布时间】:2014-08-16 02:09:47
【问题描述】:

我有一个基于 leaflet.js 的 GIS 网页:http://gisdev.clemson.edu/fireflies/。其中,有一个 WMS 层(Counties)作为最后一层添加(在现有层之上)。需要发生的是,一旦有人双击地图(在任何县),地图就会缩放。但事实并非如此。

如果单击海洋等空白区域,则地图将在双击时放大。我想我需要以某种方式使县层响应双击,但我找不到任何示例/参考。

以下是添加 Counties WMS 图层的方式:

   var wmscounty = L.tileLayer.wms("<?php echo  $geoserverwms_url; ?>", {
        layers: '<?php echo  $geoserverwms_layer_countypop; ?>',
        format: 'image/png',
        transparent: true,
        version: '1.1.0',
        attribution: "countypopulation"
      }
    );
    wmscounty.addTo(map);

如果 WMS 图层由于某些原因无法响应双击,那么可能存在某种通用地图事件侦听器,它至少会缩放到双击区域?我认为 WMS 图层可能不起作用,因为它是一些平铺图像?如果你好奇,它是由 GeoServer 生成的。

更新如果我禁用 States 图层,Counties 图层是可缩放的。那么不知何故,我要么使 States 图层不可点击,要么更改一些 z 顺序?

谢谢!

【问题讨论】:

    标签: javascript click double leaflet wms


    【解决方案1】:

    你可以为图层本身添加缩放功能吗?我遇到了一个类似的问题,并通过在层定义中添加它来解决它:

    onEachFeature: function (feature, layer) {
                      layer.on({
                        dblclick: function(e) {map.setView(e.latlng, map.getZoom() + 1);}
                      });
                    }
    

    在这里找到:https://www.mapbox.com/mapbox.js/example/v1.0.0/zoom-to-double-click/

    【讨论】:

    • Drew:看起来像一个巧妙的技巧可以让缩放工作,但我的问题已经解决了。您的解决方案总有一天会派上用场。谢谢!
    【解决方案2】:

    没关系。这听起来像是一个已知问题:https://github.com/Leaflet/Leaflet/issues/2086

    我通过 GeoServer/WMS 发布州的 Shape 文件解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 2018-11-25
      • 1970-01-01
      相关资源
      最近更新 更多