当前位置: 首页 > article >正文

vue + leaflet + 天地图实现搜索省份后高亮

实现省份高亮方法最重要的代码在于 L.geoJSON(district).addTo(map)这个方法,district为参数,可以在页面中引入当前省份的坐标json。

获取省份json文件的地址:https://datav.aliyun.com/portal/school/atlas/area_selector

import beijing from '../json/beijing.js';


//! 1. 每次先调用 clearLayers 清除所有图层
//! 2. 完了之后在使用 titleLayer 设置图层对象, addTo添加到地图当中

export const setLayer = (map, layerObject, district) => {
    clearLayers(map);
    const { spherical, mapLabel } = layerObject;
    let layer = L.tileLayer(spherical, {
        subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],//8个子域可用
        maxZoom: 18,//最大缩放
        minZoom: 1,//最小缩放
    });
    layer.addTo(map);//添加图层

    //实现省份高亮方法
    L.geoJSON(district).addTo(map);
    // L.geoJSON(beijing).addTo(map);
    // L.geoJSON(hebei).addTo(map);

    //! 有些地图图层类型,可能没有 label 标注 这里判断
    if (!mapLabel || Object.keys(mapLabel).length === 0) {
        return;
    }
    const { spherical: sphericalLabel } = mapLabel;
    let layerLabel = L.tileLayer(sphericalLabel, {
        subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
        maxZoom: 18,
        minZoom: 1
    });
    layerLabel.addTo(map);

    // 创建marker聚合层
    const markers = L.markerClusterGroup();//创建一个新的聚合标记组 (markers),用于将多个标记聚合在一起显示。
    // 创建一个自定义的LayerGroup来控制层级
    const layerGroup = L.layerGroup([markers]);
    layerGroup.addTo(map);
    // 设置层级,注意这个方法会将图层在地图中移到指定位置
    layerGroup.setZIndex(9999999999999999999999); // 设置图层的层级
    // 将markers保存到map对象上,以便后续使用
    map.markers = markers;
    map.layerGroup = layerGroup;
}


http://www.kler.cn/a/316576.html

相关文章:

  • 【系统设计】数据库压缩技术详解:从基础到实践(附Redis内存优化实战案例)
  • 使用 Sparkle 实现 macOS 应用自定义更新弹窗
  • OpenGL【C++】台灯
  • Python标准库模块的使用:math、datetime
  • CSS 自定义滚动条样式
  • SQL50题
  • Linux bash脚本本地开发环境(Git Bash)配置
  • 干货满满:嵌入式电阻的重要作用全知晓
  • 实验——完全使用Ansible部署多台服务器的服务
  • CTF 技能树 LOG -GIT泄露 笔记
  • 【磨皮美白】基于Matlab的人像磨皮美白处理算法,Matlab处理
  • react hooks--useContext
  • 【Nginx】在 Docker 上安装 Nginx 的详细指南
  • CVE-2024-46103
  • 无源蜂鸣器简介
  • 【百日算法计划】:每日一题,见证成长(017)
  • Python 类class的用法详解
  • 渗透测试综合靶场 DC-2 通关详解
  • comfyui中报错 Cmd(‘git‘) failed due to: exit code(128) 如何解决
  • 【医疗大数据】医疗保健领域的大数据管理:采用挑战和影响
  • 【2025】中医药健康管理小程序(安卓原生开发+用户+管理员)
  • 计算机毕业设计推荐-基于python的白酒销售数据可视化分析
  • 828华为云征文 | 构建高效搜索解决方案,Elasticsearch Kibana的完美结合
  • 计算结构力学,平行桁架杆件轴力计算源程序
  • Spring IoC 注解 总结
  • vue是如何优化