Leaflet学习笔记-自制Legend

时间:2024-01-29 15:17:42
 1 L.Control.Legend = L.Control.extend({
 2     options: {
 3         position: \'bottomleft\' ,//初始位置
 4         content:\'\'
 5     },
 6     initialize: function (options) {
 7         L.Util.extend(this.options, options);
 8 
 9     },
10     onAdd: function (map) {
11         var options = this.options;
12         //创建一个class为leaflet-control-clegend的div
13         this._container = L.DomUtil.create(\'div\', \'leaflet-control-clegend\');
14         //创建legend的内容
15         this._container.innerHTML = options.content;
16         //创建一个关闭控件的按钮
17         var closebutton = document.createElement(\'a\');
18         closebutton.id = \'leaflet-control-geosearch-close\';
19         closebutton.className = \'fa fa-remove leaflet-control-legend-close\';
20         this._closebutton = closebutton;
21 
22         this._container.appendChild(this._closebutton);
23         //注册关闭事件
24         L.DomEvent.addListener(this._closebutton, \'click\', this._onCloseControl, this);
25 
26         return this._container;
27     },
28     _onCloseControl: function () {
29         this._map.options.Legend = false;
30         this.removeFrom(this._map);
31 
32     }
33 });
34 
35 L.control.legend = function (options) {
36     return new L.Control.Legend(options);
37 };

以上是放在src里面的 备份一下

调用方式如下

1 L.control.legend({ content: cnt }).addTo(map);

样式:

 1 .leaflet-control-clegend {
 2             width: 200px;
 3             z-index: 9999;
 4             background-color: white;
 5             padding: 15px;
 6             border-radius: 8px;
 7             -webkit-box-shadow: 0 0 10px rgba(105, 105, 105, .5);
 8             -moz-box-shadow: 0 0 10px rgba(105, 105, 105, .5);
 9             box-shadow: 0 0 10px rgba(105, 105, 105, .5);
10         }
11             .leaflet-control-clegend ul {
12                 margin:0;
13                 padding:0;
14             } 
15             
16             .leaflet-control-clegend ul li {
17                 font-family:\'Microsoft YaHei\';
18                 font-size:16px;
19                 margin-bottom:5px;
20                 list-style-type: none;
21                 padding-left:10px
22             }
23             
24              .leaflet-control-legend-close {
25                 position: absolute;
26                 right: 10px;
27                 top: 10px;
28             }