《Leaflet 基础知识点》- 原生控件 - 缩放控件、属性控件、图层控件、比例尺控件

官网 写此文章时,使用的 1.7.1 

一、缩放控件

Control.Zoom   option.zoomcontrol

在初始化 L.map 时,默认显示 true。效果在 属性控件 中有。

二、属性控件

Control.Attribution   option.attributioncontrol

在初始化 L.map 时,默认显示 true。 

三、图层控件

Control.Layers

示例中使用天地图矢量和影像切换,先创建天地图对象,将天地图矢量作为底图。

// 创建天地图基础组
function createTdtLayerGroup(layerTypes) {
    // 天地图 token
    let tdtToken = '你的天地图token'
    // 图层组
    let layers = [];
    layerTypes.forEach(layerType => {
        let tdtUrl = `http://t0.tianditu.gov.cn/DataServer?T=${layerType}_c&x={x}&y={y}&l={z}&tk=${tdtToken}`;
        let layer = L.tileLayer(tdtUrl, {
            zoomOffset: 1,
            noWrap: true,
            bounds: [[-90, -180], [90, 180]]
        });
        layers.push(layer);
    });
    return L.layerGroup(layers);
}
 // 矢量天地图
let vecTdtLayer = createTdtLayerGroup(['vec' , 'cva']);
// 影像天地图
let imgTdtLayer = createTdtLayerGroup(['img' , 'cia']);
// 矢量天地图添加为第一个图层
vecTdtLayer.addTo(map);

默认样式,右下角有一个小图标。 

 方式一

只有基础底图的切换(参数一),没有可叠加的地图(参数二)。

// 矢量天地图
let vecTdtLayer = this.createTdtLayerGroup(['vec' , 'cva']);
// 影像天地图
let imgTdtLayer = this.createTdtLayerGroup(['img' , 'cia']);
// 基础图层对象组
let baseLayers = {// 可设置多个,但仅一个可显示,注意界面上是单选按钮
    '矢量图层': vecTdtLayer,
    '影像图层': imgTdtLayer
};
// 可叠加的图层
let overlays = {}
// 添加控件,放在右下角
L.control.layers(baseLayers, overlays, {position: 'bottomright'}).addTo(map);

方式二

 基础底图(参数一),可叠加的地图(参数二)。

// 基础图层对象组
let baseLayers = {// 可设置多个,但仅一个可显示,注意界面上是单选按钮
    '矢量图层': vecTdtLayer    
};
// 可叠加的图层
let overlays = {// 可设置多个,可叠加显示,注意界面上是多选按钮
    '影像图层': imgTdtLayer
}
// 添加控件
L.control.layers(baseLayers, overlays, {position: 'bottomright'}).addTo(map);

四、比例尺控件

Control.Scale

添加

// 1、默认样式(下图左侧)
let scaleCtrl = L.control.scale(option).addTo(map);

// 2、可设置,去除英尺缩放(下图右侧)
let option = {
    metric: true, // 显示米
    imperial: false // 不显示英尺
}
let scaleCtrl = L.control.scale(option).addTo(map);

移除 

scaleCtrl.remove();

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值