在vue中使用leaflet加载地图

之前碰到局域网中搭建地图需求,用leaflet进行操作(vue2项目),以此记录:

一.安装引入

npm install leaflet --save

在main.js中引入(也可以在所需页面引入,由于leftlet很小,只有38K,就直接全局了)

import L from "leaflet"
import "leaflet/dist/leaflet.css" 

二.在vue中使用

<template>
  <div class="mapBox">
    <div>在vue2中使用leaflet</div>
    <!-- 地图容器 -->
    <div id="map"></div>
  </div>
</template>

<script>
  export default {
    name: 'LeafletMap',
    data() {
      return {
        map: null
      }
    },
    mounted() {
      // 地图初始化
      this.initMap()
    },
    methods: {
      // 使用id为map的div容器初始化地图,同时指定地图的中心点和缩放级别
      initMap() {
        let map = L.map("map", {
          center: [24.485666, 118.095498], // 中心位置
          zoom: 12, // 缩放等级
          attributionControl: true, // 版权控件
          zoomControl: true //缩放控件
        });
        this.map = map; // data上需要挂载
        L.tileLayer(
          "http://wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}"
        ).addTo(map) // 加载底图
      }
    }
  }
</script>
<style scoped>
  #map {
    width: 800px;
    height: 500px;
    margin: 50px auto;
  }
</style>

  效果如下:

 初始化的时候还有一些别的参数可配置:地图状态:minZoom,maxZoom,crs,交互选项:dragging等,

官方文档地址:  https://leafletjs.com/reference.html,

木遥翻译中文版地址:链接:https://pan.baidu.com/s/143LMcNA9leTWuscplaf3JQ提取码:g7i2

tileLayer底图用的是高德的,地址参考:  https://blog.csdn.net/sinat_41310868/article/details/105959659
高德路网:
https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=8&ltype=11
高德影像:
https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}
高德矢量:
http://wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}
谷歌矢量:
http://mt2.google.cn/vt/lyrs=m&scale=2&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}
谷歌路网:
https://mt1.google.com/vt/lyrs=h&x={x}&y={y}&z={z}
谷歌影像:
http://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}
谷歌影像带注记:
https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}
谷歌地形:
https://mt1.google.com/vt/lyrs=t&x={x}&y={y}&z={z}
谷歌地图矢量带地形渲染:
https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}
街景地图:
https://tile.openstreetmap.org/{z}/{x}/{y}.png
天地图影像:
http://t7.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e3b434f191257368fc43c5b011ab5911
天地图影像注记:
http://t7.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e3b434f191257368fc43c5b011ab5911
天地图矢量:
http://t7.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e3b434f191257368fc43c5b011ab5911

天地图矢量注记:
http://t7.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e3b434f191257368fc43c5b011ab5911

天地图地形:
http://t7.tianditu.gov.cn/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e3b434f191257368fc43c5b011ab5911
天地图地形注记:
http://t7.tianditu.gov.cn/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=e3b434f191257368fc43c5b011ab5911

腾讯地图矢量:
http://rt0.map.gtimg.com/realtimerender?z={z}&x={x}&y={-y}&type=vector&style=0

多说一句,本来想在高德官网找类似的地址,结果没找到.问过客服说是暂时不对外提供三方渲染引擎使用,所以如果商用,慎重,可以找开放的.

github也有大神把leaflet进行了封装,github地址:  https://github.com/vue-leaflet/Vue2Leaflet

当然,还有地图标点,划线,划区域我们下次再说

 

posted @ 2021-12-21 10:30  月下云生  阅读(4982)  评论(0编辑  收藏  举报