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>
                          • 主站蜘蛛池模板: 国际金融网_每日财经新资讯网 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 非甲烷总烃分析仪|环控百科 | 船老大板材_浙江船老大全屋定制_船老大官网| 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 撕碎机_轮胎破碎机_粉碎机_回收生产线厂家_东莞华达机械有限公司 | 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | 骁龙云呼电销防封号系统-axb电销平台-外呼稳定『免费试用』 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 上海办公室装修,办公楼装修设计,办公空间设计,企业展厅设计_写艺装饰公司 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 没斑啦-专业的祛斑美白嫩肤知识网站-去斑经验分享 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 钢格板|热镀锌钢格板|钢格栅板|钢格栅|格栅板-安平县昊泽丝网制品有限公司 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 |