• leaflet-webpack 入门开发系列五地图卷帘(附源码下载)


    前言

    leaflet-webpack 入门开发系列环境知识点了解:

    内容概览

    leaflet 地图卷帘
    源代码 demo 下载

    效果图如下:

    demo 实现的效果比较简单,直接就是用 leaflet 官方的地图卷帘插件 github:leaflet-side-by-side,这个插件用的时候,左右两侧的底图要是同个的话,只能显示一个,不知道这个算不算一个bug

    demo 集成插件的步骤如下:

    • npm 命令安装 leaflet-side-by-side 插件库
    npm i leaflet-side-by-side --save
    • 引用 leaflet-side-by-side 进来
    import "leaflet-side-by-side";
    • 完整核心代码如下:
    import L from 'leaflet';
    import 'leaflet/dist/leaflet.css';
    import "leaflet-side-by-side";
    import config from "./config";
     
    let userconfig = {};
    //左侧地图
    const map = L.map("Map", {
    attributionControl: false
    }).setView(config.mapInitParams.center, config.mapInitParams.zoom);
    //创建底图切换数据源
    const baseLayer1 = L.tileLayer(config.baseMaps[0].Url,);//OSM街道图
    const baseLayer2 = L.tileLayer(config.baseMaps[1].Url);//ArcGIS影像图
    map.addLayer(baseLayer1);//左侧默认卷帘图层
    map.addLayer(baseLayer2);//右侧默认卷帘图层
    userconfig.leftLayers = [baseLayer1];
    userconfig.rightLayers = [baseLayer2];
    //卷帘地图效果
    userconfig.sideBySide = L.control
    .sideBySide(userconfig.leftLayers, userconfig.rightLayers)
    .addTo(map);
    //左侧下拉框改变事件
    document.getElementById("selectLeftV").onchange =function(){
    sideBySideChange();
    }
    //右侧下拉框改变事件
    document.getElementById("selectRightV").onchange =function(){
    sideBySideChange();
    }
    function sideBySideChange(){
    //这个插件的左右两侧底图不能一样,否则同时只能显示一个,算是一个bug?
    var leftvalue = document.getElementById("selectLeftV").value;
    var rightvalue = document.getElementById("selectRightV").value;
    var LeftLayer = leftvalue === "0" ? baseLayer1 : baseLayer2;
    var RightLayer = rightvalue === "0" ? baseLayer2 : baseLayer1;
    addLRLayers(LeftLayer,RightLayer);
    userconfig.sideBySide.setLeftLayers(userconfig.leftLayers);
    userconfig.sideBySide.setRightLayers(userconfig.rightLayers);
    }
    ……

    完整demo源码见小专栏文章尾部GIS之家leaflet小专栏

    文章尾部提供源代码下载,对本专栏感兴趣的话,可以关注一波

  • 相关阅读:
    AntDesign(React)学习-9 Dva model reducer实践
    AntDesign(React)学习-8 Menu使用 切换框架页内容页面
    AntDesign(React)学习-7 Menu添加事件
    AntDesign(React)学习-6 Menu展示数据
    AntDesign(React)学习-5 路由及使用Layout布局
    AntDesign(React)学习-4 登录页面提交数据简单实现
    AntDesign(React)学习-3 React基础
    AntDesign(React)学习-2 第一个页面
    AntDesign(React)学习-1 创建环境
    正则表达式分组捕获非捕获的示例理解
  • 原文地址:https://www.cnblogs.com/giserhome/p/11366423.html
Copyright © 2020-2023  润新知