场景
Leaflet快速入门与加载OSM显示地图:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122290880
在上面加载地图显示的基础上,实现矩形闪烁显示效果。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
1、绘制图形
//绘制图形 dispLayer= L.rectangle([[36.08, 120.36], [36.10, 120.37]], { //颜色 color: "red" }).addTo(map);
2、在setInterval()函数中反复添加、删除该图层,以达到闪烁的效果
startFeatureFlash(); /**开始闪烁 */ function startFeatureFlash() { //flag为ture时,图形消失;反之,图形显现 var flag = true; //开启计时器 id = setInterval(function () { if (flag) { //移除图形 map.removeLayer(dispLayer); flag = false; } else { //添加图形 map.addLayer(dispLayer); flag = true; } }, 500); }
3、完整示例代码
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>leaflet要素动画</title> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" /> <style> html, body, #map { padding: 0; margin: 0; 100%; height: 100%; overflow: hidden; } </style> </head> <body> <div id="map"></div> <script type="text/javascript" src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script> <script type="text/javascript"> var map = L.map('map').setView([36.09, 120.35], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '' }).addTo(map); //绘制图形 dispLayer= L.rectangle([[36.08, 120.36], [36.10, 120.37]], { //颜色 color: "red" }).addTo(map); startFeatureFlash(); /**开始闪烁 */ function startFeatureFlash() { //flag为ture时,图形消失;反之,图形显现 var flag = true; //开启计时器 id = setInterval(function () { if (flag) { //移除图形 map.removeLayer(dispLayer); flag = false; } else { //添加图形 map.addLayer(dispLayer); flag = true; } }, 500); } </script> </body> </html>