Vue3 + leaflet设置地图的主题颜色,添加背景图,折线样式

Vue3 + leaflet设置地图的主题颜色,添加背景图,折线样式

leaflet相关的详细说明文档且免费的不好找。分享给大家,希望能帮助到您,一起进步。

1.1 leaflet插件官网

https://leafletjs.cn/plugins.html

1.2 主要使用colorFilter插件 实现

可以模块化开发,也可以直接引用对应的js文件,下面是模块引入

#npm安装
npm install --save leaflet.tilelayer.colorfilter
#yarn安装
yarn add leaflet.tilelayer.colorfilter

1.3 核心代码

//滤镜  
let myFilter = ['grayscale:100%', 'invert:100%']
//地图加载
let myTileLayer = L.tileLayer
      .colorFilter('http://xxxx/{z}/{x}/{y}.png', {
        attribution: '<a href="https://wikimediafoundation.org/wiki/Maps_Terms_of_Use">Wikimedia</a>',
        filter: myFilter,
      })
      .addTo(map)
//添加其他滤镜选项
//反色(invert)灰色(grayscale)亮度(brightness)对比度(contrast)色相旋转(hue)饱和度(saturate)深褐色(sepia)
myTileLayer.updateFilter(['brightness:110%', 'hue:90deg', 'saturate:120%'])

1.3 leaflet-tilelayer-colorizr插件

作用:渲染地图要素,改变地图样式 。

先将默认地图截图,图片放在下面链接里,进行调色,然后再设置各项配置

https://codepen.io/stoumann/pen/MWeNmyb

1.4 添加背景图

// 背景图
//[[-90, -180], [90, 180]]定义了图片覆盖的经纬度范围,分别代表了全球的南北极和西东经度
L.imageOverlay('background.jpg', [[-90, -180], [90, 180]]).addTo(map);

2.禁止地图缩放

//禁止鼠标滚轮缩放
map.scrollWheelZoom.disable();
//禁止双击缩放
map.doubleClickZoom.disable()
// 移除默认的缩放控件
map.zoomControl.remove()

3.折线样式

//注意区别;polyline是折线,poligon是折线区域
let polyline = L.polyline([
    [35.68, 139.69],
    [34.04, 118.25],
    [41.87, -87.62],
    // ... 添加更多点来构成折线
], {
    color: 'red', // 折线颜色
    weight: 3,    // 折线宽度
    opacity: 0.5, // 折线透明度
    smoothFactor: 1 // 平滑度,0 表示最不平滑,1 表示最平滑
}).addTo(map); // 将折线添加到地图上

4.去掉地图右下角logo

// 创建地图实例,不显示attribution控件(即logo)
let map = L.map('mapid', {
    attributionControl: false
}).setView([中心点经纬度],11);
Vue 3Leaflet 结合使用时,实现深色主题地图较为简单。Leaflet 是一个开源的 JavaScript 库,用于在网页上嵌入和显示地图。通过使用 Leaflet主题功能,可以很容易地将地图切换为深色模式。 以下是在 Vue 3 项目中为 Leaflet 地图添加深色主题的大致步骤: 1. **添加Leaflet库:** 首先需要在你的 Vue 3 项目中安装 Leaflet。你可以使用 npm 或 yarn 来安装 Leaflet。 ```bash npm install leaflet ``` 或者 ```bash yarn add leaflet ``` 2. **导入Leaflet样式和脚本:** 在你的组件中导入 Leaflet 的 CSS 文件和 JavaScript 文件。 ```javascript import L from &#39;leaflet&#39;; import &#39;leaflet/dist/leaflet.css&#39;; ``` 3. **添加深色主题样式:** Leaflet 默认没有深色主题,但你可以使用社区贡献的主题样式文件。例如,使用 `leaflet nighttime` 主题样式。你可以从网上找到该主题的 CSS 文件,并下载或直接链接到你的项目中。 ```javascript import &#39;leaflet.nighttimecss/leaflet.nighttime.css&#39;; ``` 请注意,`leaflet.nighttimecss` 是一个社区扩展,你可能需要寻找适合的深色主题插件或自行编写 CSS 覆盖默认样式。 4. **创建地图实例并添加到页面:** 在你的 Vue 组件中,创建地图实例并指定初始位置和缩放级别。 ```javascript export default { name: &#39;MapComponent&#39;, mounted() { const map = L.map(&#39;map&#39;).setView([51.505, -0.09], 13); L.tileLayer(&#39;https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&#39;, { maxZoom: 19, attribution: &#39;© OpenStreetMap contributors&#39; }).addTo(map); } } ``` 在上述代码中,`L.map` 创建了地图实例,`L.tileLayer` 添加地图瓦片服务。如果你使用的是深色主题瓦片,那么在这个方法中指定的瓦片服务 URL 应该是支持深色主题的。 5. **调整地图样式:** 如果你使用的是自定义的深色瓦片或者有特定的样式调整需求,你可以通过 CSS 来覆盖默认样式。 确保在 HTML 模板中有一个 div 元素作为地图的挂载点: ```html <template> <div id="map" style="height: 400px;"></div> </template> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值