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

leaflet(一)初始化地图

Leaflet 与天地图结合使用,可以通过天地图提供的 API 获取地图瓦片,并在 Leaflet 地图上显示。

1. 安装依赖

首先,确保你已经安装了 Leaflet 和 Vue:

npm install leaflet
npm install vue-leaflet
npm install leaflet.tilelayer.colorfilter   //添加带有颜色过滤器的瓦片层

2. 引入 Leaflet 和样式

在你的 Vue 组件中引入 Leaflet 和其样式文件:

<template><divid="mapDiv"class="map"style="width: 100%; height: 100%; background-color: rgba(15, 44, 80, 0.9) !important;"></div>
</template><script>
import L from "leaflet";
import "leaflet.tilelayer.colorfilter";
import "leaflet/dist/leaflet.css";
let atopMap = null;
export default {mounted() {this.initMap();this.addTianDiTuLayer();},methods: {//初始化地图initMap() {atopMap = L.map("mapDiv", {//参考坐标系crs: L.CRS.EPSG3857,// 中心点(这里是北京)center: [39.89945, 116.40769],//最小显示等级minZoom: 0,//最大显示等级maxZoom: 18,//当前显示等级zoom: 13,zoomControl: false,contextmenu: true,//不添加属性说明控件attributionControl: false,});//定义一个比例尺控件const scaleControl = L.control.scale();//将比例尺控件加载到地图容器中atopMap.addControl(scaleControl);},//增加天地图底图图层addTianDiTuLayer() {// 矢量图+注记// let mapTypes = ['vec_c', 'cva_c'];let mapTypes = ["vec_w", "cva_w"];let layers = [];for (let i = 0, len = mapTypes.length; i < len; i++) {let tdtUrl = `http://t0.tianditu.gov.cn/DataServer?T=${mapTypes[i]}&x={x}&y={y}&l={z}&tk=${YOUR_API_KEY}`;let layer = L.tileLayer.colorFilter(tdtUrl, {filter: ["grayscale:100%","invert:100%","brightness:60%","hue:220deg","saturate:54%","opacity: 50%",],zoomOffset: 0, // 注意如果是 web 墨卡托投影(EPSG:3857) 请改为 0noWrap: true,bounds: [[-90, -180],[90, 180],],});layers.push(layer);}// LayerGroup 对象L.layerGroup(layers).addTo(atopMap);},}
}
</script><style lang="scss" scoped>
.tdt-tile-pane {.tdt-layer:first-child + .tdt-layer {.tdt-tile-loaded {-webkit-filter: grayscale(100%) invert(100%);opacity: 0.5 !important;}}
}::v-deep .icon-label {color: #fff;width: 70px;text-align: center;font-size: 14px !important;
}::v-deep .tdt-control-container {display: none !important;
}.map {background-color: rgba(15, 44, 80, 0.9) !important;
}
</style>

http://www.lryc.cn/news/464615.html

相关文章:

  • Unity开发Hololens项目
  • 立志最细,FreeRtos的中断管理(Interrupt Management)函数,详解!!!
  • 作业2-线性回归的Matlab代码实现
  • 用jQuery在canvas上绘制绝对定位的元素
  • Android中 tools:text 和 android:text区别
  • Wordpress GutenKit 插件 远程文件写入致RCE漏洞复现(CVE-2024-9234)
  • Redis历史漏洞未授权RCE复现
  • Greenhills学习总结
  • 【深入学习Redis丨第八篇】详解Redis数据持久化机制
  • 【27续】c++项目练习
  • Lazarus Query转EXCEL功能
  • AnaTraf | 深入探讨DNS流量分析:保障网络稳定性的关键
  • P1017 [NOIP2000 提高组] 进制转换
  • 计算机网络—vlan(虚拟局域网)
  • C++头文件大全及解释
  • 基于 Django 的电商比价系统
  • Excel重新踩坑2:Excel数据类型;自定义格式(设置显示格式);分列操作;其他常用操作;一些重要操作
  • python从0快速上手(十四)数据库操作
  • 【热门主题】000004 案例 Vue.js组件开发
  • Ingress-nginx中HTTPS的强制转发
  • C++深入探寻二叉搜索树:数据管理的智慧之选
  • Python 文件 I/O 入门指南
  • Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【检测】(五)
  • 1.2.3 TCP IP模型
  • 选择、冒泡和插入排序及其优化版本课件
  • Matlab自学笔记三十九:日期时间型数据的算术运算:加减运算
  • Java-多线程2
  • POWER_CONMETRICS的packet wakeup events触发条件的代码走读
  • Bug:通过反射修改@Autowired注入Bean的字段,明确存在,报错 NoSuchFieldException
  • Vue项目兼容IE11