pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

    1. <legend id='ZWYck'><style id='ZWYck'><dir id='ZWYck'><q id='ZWYck'></q></dir></style></legend>
    2. <i id='ZWYck'><tr id='ZWYck'><dt id='ZWYck'><q id='ZWYck'><span id='ZWYck'><b id='ZWYck'><form id='ZWYck'><ins id='ZWYck'></ins><ul id='ZWYck'></ul><sub id='ZWYck'></sub></form><legend id='ZWYck'></legend><bdo id='ZWYck'><pre id='ZWYck'><center id='ZWYck'></center></pre></bdo></b><th id='ZWYck'></th></span></q></dt></tr></i><div class="lbpfdb5" id='ZWYck'><tfoot id='ZWYck'></tfoot><dl id='ZWYck'><fieldset id='ZWYck'></fieldset></dl></div>

        <tfoot id='ZWYck'></tfoot>
      1. <small id='ZWYck'></small><noframes id='ZWYck'>

          <bdo id='ZWYck'></bdo><ul id='ZWYck'></ul>
      2. 如何在 Leaflet 中顯示超出特定縮放級別的標簽?

        How do I show a label beyond a certain zoom level in Leaflet?(如何在 Leaflet 中顯示超出特定縮放級別的標簽?)

          <tfoot id='4M4zX'></tfoot>

          <small id='4M4zX'></small><noframes id='4M4zX'>

          • <bdo id='4M4zX'></bdo><ul id='4M4zX'></ul>
                  <tbody id='4M4zX'></tbody>
                1. <legend id='4M4zX'><style id='4M4zX'><dir id='4M4zX'><q id='4M4zX'></q></dir></style></legend>
                2. <i id='4M4zX'><tr id='4M4zX'><dt id='4M4zX'><q id='4M4zX'><span id='4M4zX'><b id='4M4zX'><form id='4M4zX'><ins id='4M4zX'></ins><ul id='4M4zX'></ul><sub id='4M4zX'></sub></form><legend id='4M4zX'></legend><bdo id='4M4zX'><pre id='4M4zX'><center id='4M4zX'></center></pre></bdo></b><th id='4M4zX'></th></span></q></dt></tr></i><div class="xdrtfl5" id='4M4zX'><tfoot id='4M4zX'></tfoot><dl id='4M4zX'><fieldset id='4M4zX'></fieldset></dl></div>

                  本文介紹了如何在 Leaflet 中顯示超出特定縮放級別的標簽?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我對 Leaflet 庫和 JavaScript 非常陌生,我一直在試圖弄清楚如何根據縮放級別顯示/隱藏傳單標簽(并且標記位于集群"中' 層).

                  I'm pretty new to the Leaflet library, and to JavaScript in general, and I'm stuck trying to figure out how to show/hide a leaflet Label based on the zoom level (and the markers are in a 'cluster' layer).

                  標記全部通過 AJAX 回調加載,然后我使用 onEachFeature 綁定彈出窗口和標簽,然后將 geoJson 標記層添加到地圖.

                  The markers are all loaded via AJAX callback and then I bind the popup and label using the onEachFeature, then I add the layer of geoJson markers to the map.

                  我只想在放大到某個級別時顯示標簽,但我沒有任何運氣.我也嘗試添加 leaflet.zoomcss.js 但我想我沒有正確使用它.

                  I'd like to only show the labels when zoomed in to some level, but I haven't had any luck. I also tried adding the leaflet.zoomcss.js but I guess I'm not using that correctly.

                  示例

                  var officesLayerGroup = L.markerClusterGroup();
                  var currentMakers;
                  function DiaplyLocalOffices(jqOffices) {
                  
                      currentMakers = new L.geoJson(jqOffices, {
                          style: function (feature) {
                              var c = feature.properties.markercolor;
                              if (feature.properties.OfficeID == 0) {
                                  c = 'yellow';
                              }
                              return { color: c };
                          },
                          pointToLayer: function (feature, latlng) {
                              return new L.CircleMarker(latlng, { radius: 7, fillOpacity: 0.5 });
                          },
                  
                          onEachFeature: bindOfficePopup
                      });
                      officesLayerGroup.addLayer(currentMakers);
                      map.addLayer(officesLayerGroup); 
                  }
                  
                  function bindOfficePopup(feature, layer) {
                      // This function adds the popup based on the information in the 'layer' or marker
                      // Keep track of the layer(marker)
                      feature.layer = layer;
                  
                      var props = feature.properties;
                      if (props) {
                          var desc = '<span id="feature-popup">';
                          //.. a bunch of other html added here!    
                          var warn = props.Warning ? props.Warning : null;
                          if (warn !== null) {
                              desc += '<font size="4" color="red"><strong><em>' + warn + '</em></strong></font></br>';
                          }
                          desc += '</span>';
                          layer.bindPopup(desc);
                          layer.bindLabel('Hi Label!', { noHide: true, className: 'my-css-styled-labels'});
                  
                      }
                  }
                  

                  我也嘗試過像這樣添加它,但也沒有用:

                  I've also tried adding it like this but that didn't work either:

                      layer.on({
                            zoomend: showLabel(e)
                      });
                  

                  然后是快速函數:

                  function showLabel(e) {
                      z = map.getZoom();
                      if (z > 6) {
                          layer.bindLabel("HIYA", { noHide: true, className: 'my-css-styled-labels' });
                      }
                  }
                  

                  但沒有運氣,即使為 leaflet.zoomcss.js

                  抱歉冗長,但我們將不勝感激!

                  Sorry for being lengthy, but any help would be really appreciated!

                  推薦答案

                  Leaflet 的圖層在縮放地圖時沒有觸發事件.實際的地圖實例確實如此.但是,當您開始擁有更多功能時,將事件處理程序綁定到每個功能將變成性能噩夢.您最好處理地圖縮放事件,然后獲取圖層中的所有要素并在需要時顯示標簽.例如:

                  Leaflet's layers don't have events fired when zooming the map. The actual map instance does. But binding an eventhandler to each feature would turn into a performance nightmare when you start having more features. You're better off handling the map zoomevent and then fetching all the features in your layer and showing the labels if needed. For example:

                  var geoJsonLayer = L.geoJson(featureCollection, {
                      onEachFeature: function (feature, layer) {
                          layer.bindLabel(feature.geometry.coordinates.toString());
                      }
                  }).addTo(map);
                  
                  var visible;
                  
                  // Attach map zoom handler
                  map.on('zoomend', function (e) {
                      // Check zoom level
                      if (map.getZoom() > 10) {
                          // Check if not already shown
                          if (!visible) {
                              // Loop over layers
                              geoJsonLayer.eachLayer(function (layer) {
                                  // Show label
                                  layer.showLabel();
                              });
                              // Set visibility flag
                              visible = true;
                          }
                      } else {
                          // Check if not already hidden
                          if (visible) {
                              // Loop over layers
                              geoJsonLayer.eachLayer(function (layer) {
                                  // Hide label
                                  layer.hideLabel();
                              });
                              // Set visibility flag
                              visible = false;
                          }
                      }
                  });
                  
                  // Fits to layer bounds which automaticly will fire the zoomevent
                  map.fitBounds(geoJsonLayer.getBounds());
                  

                  這是一個關于 Plunker 的工作示例:http://plnkr.co/edit/V8duPDjKlY48MTHOU35F?p=preview

                  Here's a working example on Plunker: http://plnkr.co/edit/V8duPDjKlY48MTHOU35F?p=preview

                  這篇關于如何在 Leaflet 中顯示超出特定縮放級別的標簽?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Check if a polygon point is inside another in leaflet(檢查一個多邊形點是否在傳單中的另一個內部)
                  Changing leaflet markercluster icon color, inheriting the rest of the default CSS properties(更改傳單標記群集圖標顏色,繼承其余默認 CSS 屬性)
                  Trigger click on leaflet marker(觸發點擊傳單標記)
                  How can I change the default loading tile color in LeafletJS?(如何更改 LeafletJS 中的默認加載磁貼顏色?)
                  Adding Leaflet layer control to sidebar(將 Leaflet 圖層控件添加到側邊欄)
                  Leaflet - get latitude and longitude of a marker inside a pop-up(Leaflet - 在彈出窗口中獲取標記的緯度和經度)
                  <legend id='EKteF'><style id='EKteF'><dir id='EKteF'><q id='EKteF'></q></dir></style></legend>

                  <small id='EKteF'></small><noframes id='EKteF'>

                  <tfoot id='EKteF'></tfoot>
                      • <bdo id='EKteF'></bdo><ul id='EKteF'></ul>

                            <tbody id='EKteF'></tbody>

                        1. <i id='EKteF'><tr id='EKteF'><dt id='EKteF'><q id='EKteF'><span id='EKteF'><b id='EKteF'><form id='EKteF'><ins id='EKteF'></ins><ul id='EKteF'></ul><sub id='EKteF'></sub></form><legend id='EKteF'></legend><bdo id='EKteF'><pre id='EKteF'><center id='EKteF'></center></pre></bdo></b><th id='EKteF'></th></span></q></dt></tr></i><div class="v55hn7x" id='EKteF'><tfoot id='EKteF'></tfoot><dl id='EKteF'><fieldset id='EKteF'></fieldset></dl></div>
                          • 主站蜘蛛池模板: 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 立刷【微电签pos机】-嘉联支付立刷运营中心| 包头市鑫枫装饰有限公司| 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 齿式联轴器-弹性联轴器-联轴器厂家-江苏诺兴传动联轴器制造有限公司 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 上海网站建设-上海网站制作-上海网站设计-上海做网站公司-咏熠软件 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 甲级防雷检测仪-乙级防雷检测仪厂家-上海胜绪电气有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 迪威娱乐|迪威娱乐客服|18183620002 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 酒瓶_酒杯_玻璃瓶生产厂家_徐州明政玻璃制品有限公司 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 湖南长沙商标注册专利申请,长沙公司注册代理记账首选美创! | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 电子天平-华志电子天平厂家| 铝箔-铝板-花纹铝板-铝型材-铝棒管-上海百亚金属材料有限公司 | 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 博客-悦享汽车品质生活| 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 |