一、创建leaflet地图

  1. 输入指令npm install leaflet
  2. 页面引入
    import L from "leaflet";
    import "leaflet/dist/leaflet.css"
    
  3. 页面创建展示地图的div
    <div id="map-container" style="width: 100%;height: 100%;"></div>
    
  4. 初始化地图
    initMap: function() {//定义图层样式var layer = L.tileLayer("http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}");//创建地图var map = L.map('map-container', {center: [39.89854, 116.3347],//中心坐标zoom: 10,//缩放级别minZoom: 3,maxZoom: 14,zoomControl: true, //缩放组件attributionControl: false, //去掉右下角logollayers: [layer],//图层});
    }
    

    OK,创建完成!

二、地图上绘制点、线、多边形、弹框

  1. 画点

    addMarker: function() {//设置图标样式var myIcon = L.icon({iconUrl: "http://pic.616pic.com/ys_img/00/08/06/TnCNKnPVDY.jpg",iconSize: [30, 30],});var marker = L.marker([39.89854, 116.3347], {icon: myIcon}).addTo(map)
    },
    

    效果图

  2. 画线

    //画线
    addPolyline:function(map){var points =[[39.89854, 116.3347],[39.95854, 116.5347],[39.88854, 116.5747]]var polyline = L.polyline(points, {color: 'red'}).addTo(map);
    },
    

    效果图

  3. 画多边形

    //画多边形
    addPolygon:function(){var points= [[39.89854, 116.3347],[39.95854, 116.5347],[39.88854, 116.5747]]var polygon = L.polygon(points, {color: '#aa0000',fillColor:'#ff15c9',weight:1}).addTo(map);
    },
    

    效果图

    4、绘制弹框

     //直接在自己的组件上使用。点、线、面都可以marker.bindPopup("我是summer_du!我在北京")
    

    也可以自定义样式

       //自定义弹框样式var popup = L.popup().setContent('<p style="color:red;">我是summer_du!<br />我在北京</p>')marker.bindPopup(popup)
    

    效果图

三、省、县、区域边界

  1. 首先,要获取要显示地区的json数据。获取地址可参考(可以只显示所选区域,或者显示所选区域下的所有子区域)
    http://datav.aliyun.com/tools/atlas/#&lat=30.332329214580188&lng=106.72278672066881&zoom=3.5
  2. 将下载好的json文件复制到项目中,引入json文件
    import beijing from './beijing.json'
    
  3. 绘制高亮区域
    //绘制区域颜色
    addAreaColor: function(map) {//区域样式var style = {"color": "#0000ff", //边框颜色"weight": 3, //边框粗细"opacity": 0.4, //透明度"fillColor": '#55ff7f', //区域填充颜色"fillOpacity": 0.5, //区域填充颜色的透明};var s = L.geoJSON(beijing,{style:style}).addTo(map);
    },
    

    效果如下

四、热力图

  1. 输入指令npm install heatmap.js 进行安装

  2. 页面引入

    import HeatmapOverlay from 'heatmap.js/plugins/leaflet-heatmap'
    
  3. 创建热力图图层数据,并加载到地图上

             var testData = {max: 8,//最大值data: [{lat:39.89854,lng:116.3347,count:5},{lat:39.90854,lng:116.3447,count:8},{lat:39.89654,lng:116.3947,count:2},{lat:39.91854,lng:116.3447,count:7},{lat:39.91554,lng:116.4147,count:8},{lat:39.88654,lng:116.3647,count:3}]};//配置var cfg = {"radius": 0.015,//设置每一个热力点的半径"maxOpacity": 0.8,//设置最大的不透明度"minOpacity": 0, //设置最小的不透明度"scaleRadius": true,//设置热力点是否平滑过渡"useLocalExtrema": false,//使用局部极值"latField": 'lat',//纬度"lngField": 'lng',//经度"valueField": 'count',//热力点的值"gradient": { //热力点颜色的变化范围"0.99": "rgba(255,0,0,1)","0.9": "rgba(255,255,0,1)","0.8": "rgba(0,255,0,1)","0.5": "rgba(0,255,255,1)","0": "rgba(0,0,255,1)"},};var heatmapLayer = new HeatmapOverlay(cfg);heatmapLayer.setData(testData);map.addLayer(heatmapLayer)
    

    效果如下

五、动态风场

  1. 输入命令 npm install leaflet-velocity 进行安装
  2. 页面引入
    import 'leaflet-velocity/dist/leaflet-velocity.css'
    import 'leaflet-velocity/dist/leaflet-velocity'
    
  3. 绘制风场
    //加载风场
    initWind: function() {var velocityLayer = L.velocityLayer({displayValues: true,//鼠标位置风场信息。也可以自定义html来进行显示displayOptions: {velocityType: '',//鼠标所在位置的风场提示信息说明,会在地图上显示displayPosition: 'bottomleft',//风场提示信息位置displayEmptyString: 'No wind data'},data: windData,//风场数据,需要从外部引入minVelocity: 2, //速率lineWidth: 2, //粒子的粗细frameRate: 15, //定义每秒执行的次数colorScale: ["#2b5783"], //风场颜色velocityScale: 0.05, //线条速度particleMultiplier: "0.001", //线条密度maxVelocity: 3, //颜色配比});// 风场实例添加到地图上velocityLayer.addTo(map)
    },
    

    我们来看一下风场动态效果。

参考API文档

leaflet中文API文档可参考https://www.giserdqy.com/secdev/leaflet/14523/

leaflet地图总结(不断更新)相关推荐

  1. 在Leaflet地图上集成Echarts

    需求背景: 现在我要在地图上加上Echarts的散点图还有线集,看起来就很牛B的那种.上效果图: 需求分析: 我先看了看Echarts官网上有提供加载地图的例子,主要包括三种方式: 1.加载js格式的 ...

  2. leaflet地图资源整理

    leaflet地图资源整理均来自网络 React-Leaflet(v2.0-beta)を試す https://qiita.com/sugasaki/items/d225cf548e9a787dbd9c ...

  3. 浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式]

    为什么要取这样的一个题目呢?主要是因为今天去了一家公司和他们谈了谈,本来是指望做兼职的,谈到最后当然是不成了.去谈的是地图制作(可兼职)一职,要求是地图制图经验,最后加了个有WEBGIS开发经验.本来 ...

  4. Mapv 结合 Leaflet 地图使用

    看了Mapv的源码才发现,它是支持 Leaflet 地图的,Mapv作者也是有和Leaflet地图结合的案例的,但是直接百度 "Mapv Leaflet" 却没有结果,为了补全这个 ...

  5. leaflet地图插件汇总

    参考博文 https://leafletjs.com/reference-1.7.1.html leaflet地图文档 https://blog.csdn.net/bigbear00007/artic ...

  6. 车机高德导航Linux版升级,高德地图车机版 最新版本V2.8.2地图数据+软件更新方法...

    最近购买了android的车载导航,导航用的是高德地图车机版,原车用的版本是2.0的版本,跟最近的2.8.2的差别有点大,这里就为大家分享一下如果将软件升级到2.8.2,地图也跟进更新到最新版本,方便 ...

  7. leaflet地图原理_使用Leaflet创建地图拓扑图

    之前我们采用过 Openlayers+Qunee的方案,实现地图拓扑图,鉴于Openlayers是一个古老项目,略显臃肿,对于现代的前端地图应用,显得笨重,在客户的介绍下,我们找到了leaflet - ...

  8. leaflet地图截图批量导出(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  9. 关于Leaflet 地图 遮罩反选

    关于Leaflet 地图 遮罩反选 最近项目用到leaflet作为地图开发插件,需要将某个区域突出显示,其余部分隐藏,之前做过百度地图的开发,有过类似的经验,就简单写一下作为记录. leaflet 地 ...

最新文章

  1. 如何把很多照片拼成一张照片_一张25GB的照片,到底比普通照片强在哪儿?
  2. 公司管理项目管理中的技巧
  3. 使用jquery制作计算器_如何使用jQuery对计算器进行编程
  4. 非线编辑软件 linux,Flowblade 2.0 发布,非线性开源Linux视频编辑器
  5. python数据分析师网易城市数据团_城市数据分析师-网易云课堂 - 网易云课堂
  6. 介绍几款在线编程工具(Python)
  7. 校园网络构建方案设计
  8. ROSROS2可视化仿真软件
  9. php 抽奖活动_PHP实现活动人选抽奖功能
  10. html根据ip和mac地址,关于怎么通过IE浏览器获取客户端的IP地址和Mac地址
  11. 已拿头条offer的研发工程师面经(C++)
  12. 品牌推广方法大全(收藏日后必有用处)
  13. java毕业设计旅游网站设计源码+lw文档+mybatis+系统+mysql数据库+调试
  14. win10系统如何连接到无线显示器?
  15. 神策数据付力力:新一代的营销数据平台
  16. Android 音频驱动分析--A10
  17. 应用程序配置文件(.config)
  18. 整理几种List去重的方法
  19. 变美丽——XP模拟Vista终极攻略
  20. 在线HTTP速度测试(响应时间测试)及浏览器兼容测试

热门文章

  1. 类炸弹人3V3游戏完整源码分享
  2. 在node.js响应流中,res.setHeader内设置多个Set-Cookie
  3. cf 923B Producing Snow
  4. 你的年货买齐了吗?2023最全年货清单列表
  5. 蜜蜂蚂蚁数据集分类(tensorflow)
  6. SQL习题1:查询成交量、金额及成交周期
  7. python爬虫爬取腾讯网站——实时疫情数据并生成Excel表格
  8. 前端学习 -- Css -- 字体的几个属性学习
  9. 穷人与富人的区别(转载)
  10. 世界五百强面试题目及应答评点(50题)