Leaflet地图初始化地图(谷歌+天地图混合图层)

一些关于leaflet地图比较基础的知识代码

注意map这个div宽高一定要给的,天地图key可以去天地图官网申请

<template>
  <div>
    <div id="map" style="width:1200px; height:800px "></div>
  </div>
</template>
<script>
//引入一些leafelt相关文件
import L from 'leaflet'
import 'leaflet/dist/leaflet.css' //关键,不引入会错位
import LChinaTilelayer from 'vue2-leaflet-chinatilelayer' //关键,
require('@/utils/Leaflet.fullscreen.js') //全屏
import 'leaflet-easybutton'
import 'leaflet.pm' //leafletmp插件
import 'leaflet.pm/dist/leaflet.pm.css'
import axios from 'axios'

methods:{
    initMap() {
      var that = this
      var p1 = [39.90553, 116.391305] //天安门
      var yxmap1 = L.tileLayer.chinaProvider('Google.Satellite.Map', {
        //卫星图谷歌
        id: 'layer_tiandi',
        detectRetina: true,
        zIndex: 3,
        maxZoom: 21,
        minZoom: 19
      })
      var yxmap2 = L.tileLayer.chinaProvider('TianDiTu.Satellite.Map', {
        //卫星图天地
        id: 'layer_tiandi',
        detectRetina: true,
        zIndex: 4,
        maxZoom: 18,
        minZoom: 2,
        key: '天地图key'
      })
      var yxmap_group = L.layerGroup([yxmap2, yxmap1]) //卫星图天地+谷歌创建为一个图层组
      var slmap = L.tileLayer.chinaProvider('TianDiTu.Normal.Map', {
        //矢量图天地
        id: 'layer_tiandi2',
        detectRetina: true,
        zIndex: 3,
        maxZoom: 21,
        minZoom: 2,
        key: '天地图key'
      })
      var bzmap = L.tileLayer.chinaProvider('TianDiTu.Normal.Annotion', {
        //标注天地
        id: 'layer_tiandi',
        detectRetina: true,
        zIndex: 3,
        maxZoom: 21,
        minZoom: 5,
        key: '天地图key'
      })


      //卫星影像地图,矢量地图
      var baseMaps = {
        影像地图: yxmap_group,
        矢量地图: slmap
      }
      var ygMaps = {
        标注: bzmap
      }

      this.map = L.map('map', {
        center: p1,
        zoom: 9,
        layers: yxmap_group,
        zoomControl: false,
        attributionControl: true,
        dragging: true,
        touchZoom: true,
        scrollWheelZoom: true,
        doubleClickZoom: true,
        boxZoom: true,
        tap: true,
        keyboard: true,
        attributionControl: false // 右下角leaflet标识
      })
      L.control.layers(baseMaps, ygMaps).addTo(this.map) //右上角的切换地图
       this.map.setVies(p1,12)                     //初始化地图中心经纬度,缩放级别
    },
}
</script>

leaflet位置跳转动态效果

    leafeltFly() { //fly效果
      this.map.flyTo([39.61103, 108.46267])
    },

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Leaflet 是一种结合了Vue框架和Leaflet库的前端技术,用于展示和操作天地天地是一种具有高清影像和矢量数据的地图服务,提供了丰富的地理信息资源和功能,如地图展示、地图操作、定位导航等。 Vue Leaflet 可以通过调用天地的API接口,获取并展示天地的各类地理信息。通过Vue的组件化开发方式,可以方便地在Vue项目中使用这些地理信息,实现自定义的地图功能。例如,在Vue Leaflet 中可以实现地图、标记点、线段、面等地理要素的显示和编辑。 Vue Leaflet 提供了一套方便易用的API和组件,可以轻松地在Vue项目中集成和使用天地。比如,可以使用Vue Leaflet 提供的地图组件将天地展示在网页中,可以使用它提供的标记点组件在地图上添加标记,可以使用它提供的工具条组件进行地图的操作和导航等。 使用Vue Leaflet 可以有效地提高开发效率和用户体验。通过其简洁的API和灵活的组件,开发人员可以快速地实现各种地图需求,如显示地图、标记地点、展示线段等。并且,Vue Leaflet 结合了Vue框架的优势,可以更好地组织和管理地图相关的逻辑代码,使开发工作更加方便和高效。 总之,Vue Leaflet 是一种方便、灵活和高效的前端技术,用于展示和操作天地。它通过结合Vue框架和Leaflet库,提供了一套方便易用的API和组件,帮助开发人员快速实现各种地图需求,提高开发效率和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值