LeaFlet自定义控件

前言:在控件自定义上,比较简单,我们只需要按照特有的模板进行,简单的填充就行了,在模板中添加适当的方法即可。

一、基本模板

L.Control.XXX= L.Control.extend({
    //在此定义参数    
    options: {
    },
    //在此初始化
    initialize: function (options) {
        L.Util.extend(this.options, options);
    },
    onAdd: function (map) {
       //可在此添加控件内容
    }
});

例如我们可以添加一个位置参数position该参数有四个可选值

  1. topleft:地图的左上角
  2. topright:地图的右上角
  3. bottomleft:地图的左下角
  4. bottomright:地图的右下角

二、demo案例

        L.Control.Legend = L.Control.extend({
            options: {
                position: 'topright' //初始位置
               

            },
            initialize: function (options) {
                L.Util.extend(this.options, options);

            },
            onAdd: function (map) {
                //创建一个class为info legend的div
                this._container = L.DomUtil.create('div', 'info legend');
                //创建一个图片要素
               var  grades = [0, 10, 20, 50, 100, 200, 500, 1000],
                    labels = [],
                    from, to;

                for (var i = 0; i < grades.length; i++) {
                    from = grades[i];
                    to = grades[i + 1];

                    labels.push(
                        ' ' +
                        from + (to ? '–' + to : '+'));
                }

                this._container.innerHTML = labels.join('
'); return this._container; }, _getColor: function(d) { return d > 1000 ? '#800026' : d > 500 ? '#BD0026' : d > 200 ? '#E31A1C' : d > 100 ? '#FC4E2A' : d > 50 ? '#FD8D3C' : d > 20 ? '#FEB24C' : d > 10 ? '#FED976' : '#FFEDA0'; }, onRemove: function (map) { // Nothing to do here } }); L.control.legend = function (opts) { return new L.Control.Legend(opts); } var legend = L.control.legend({ position: 'bottomright' }); //添加图例 legend.addTo(map);

三、效果图

上图是添加一个图例,效果看下图

LeaFlet自定义控件_第1张图片

 

一个渐变色图例填充,主要做自定控件的测试。

转载于:https://www.cnblogs.com/tuboshu/p/10752304.html

你可能感兴趣的:(javascript)