Vue项目使用leaflet加载arcgis server发布的自定义服务

2 篇文章 0 订阅
1 篇文章 0 订阅

前提:使用cnpm在项目中安装leaflet和esri-leaflet,npm安装较慢,在这里使用cnpm进行安装

全局引入淘宝的cnpm镜像: npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm install leaflet

cnpm install esri-leaflet

 

全局引入leaflet:

在main.js文件中输入下面代码

import leaflet from 'leaflet'  //引入leaflet
import 'leaflet/dist/leaflet.css'  //引入leaflet的样式文件
Vue.prototype.L = leaflet    //设置全局变量
import 'leaflet.chinatmsproviders'  //引入leaflet加载天地图插件

在要使用esri-leaflet插件的组件中输入下面代码,如map.vue文件:

<template>
  <div id="map" class="map"></div>
</template>

<script>
import { chinaRegion } from '../../../../../static/mapData/china'
// import provinceRegion from '../../../../../static/mapData/province'
var esri = require('esri-leaflet')
export default {
  data() {
    return {}
  },
  mounted() {
    //将引入的chinatmsproviders插件里的key值替换成自己的key值
    L.TileLayer.ChinaProvider.providers.TianDiTu.key =
      '替换成自己的key值'
    this.initMap()
  },
  methods: {
    // 初始化地图
    initMap() {
      const normalm = L.tileLayer.chinaProvider('TianDiTu.Normal.Map', {
        maxZoom: 18,
        minZoom: 4,
      })
      const normala = L.tileLayer.chinaProvider('TianDiTu.Normal.Annotion', {
        maxZoom: 18,
        minZoom: 4,
      })
      const PurplishBlue = L.tileLayer.chinaProvider(
        'Geoq.Normal.PurplishBlue',
        {
          maxZoom: 18,
          minZoom: 4,
        }
      )
      const normal = L.layerGroup([normalm, normala])
      const map = L.map('map', {
        center: [39.939, 116.937],
        zoom: 10,
        layers: [PurplishBlue],
        zoomControl: false,
        attributionControl: false,
      })
      const region = L.geoJSON(chinaRegion, {
        style: function(feature) {
          return { color: '#3388ff',fillOpacity:0 }
        },
      }).addTo(map)
      map.fitBounds(region.getBounds())
      
      //调用arcgis server服务
      //esri.basemapLayer('Topographic').addTo(map)
      esri.dynamicMapLayer({url:'自己发布的arcgis服务地址'}).addTo(map)
    
    
    },
  },
}
</script>

<style lang="scss" scoped>
#map {
  height: calc(100vh - 86px);
  border: 1px solid #ddd;
  width: 40%;
  overflow: hidden;
}
</style>

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值