esri loader + arcgis api 实现小部件

template部分

<template>
      <el-row style="box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 12px 0px;">
        <el-button type="" icon="el-icon-plus" circle class="zoomin"></el-button>
        <el-button type="" icon="el-icon-minus" circle class="zoomout"></el-button>
        <el-button type="info" icon="el-icon-thumb" circle class="pan"></el-button>
        <el-button type="info" icon="el-icon-full-screen" circle class="fullmap"></el-button>
        <el-button type="" icon="el-icon-arrow-left" circle class="beforePic"></el-button>
        <el-button type="" icon="el-icon-arrow-right" circle class="afterPic"></el-button>
      </el-row>
</template>

js部分

import * as esriLoader from 'esri-loader'
// import $ from 'jquery'

export default {
  data() {
    return {
      xyText: '',
      extent_tag: [ ],
      value: '', // 选择的ID
      options_power: [{
        value: 'option-choose',
        label: '筛选'
      }, {
        value: 'option-clean',
        label: '清除'
      }, {
        value: 'option-visible',
        label: '显示'
      }, {
        value: 'setting-extent-xy',
        label: '设置坐标'
      }, {
        value: 'setting-extent',
        label: '设置范围'
      }],
      xy_zdy: {},
      extent_zdy: {},
      centerDialogVisible: false,
      centerDialogVisible_extent: false,
      checked: true
    }
  },
  // 我们需要在该组件装载之后做的事情都放在该方法里
  mounted() {
    esriLoader.setDefaultOptions({ version: '3.28' })
    this.createMap()
  },
  // 我们需要执行的方法都定义在该属性里
  methods: {
    createMap: function() {
      esriLoader.loadModules(['esri/map',
        'esri/geometry/Extent',
        'esri/layers/ArcGISDynamicMapServiceLayer',
        'dojo/query',
        'esri/toolbars/navigation',
        'esri/geometry/Point',
        'dojo/domReady!'], { css: true })
        .then(([Map, Extent, ArcGISDynamicMapServiceLayer, query, Navigation, Point]) => {
          var tjUAVurl = 'http://localhost:6080/arcgis/rest/services/Eco/BJ_td_gd_nyd/MapServer'

          var map = new Map('map', {
            extent: new Extent({
              xmin: 114.4134760856628,
              ymin: 40.13100080490112,
              xmax: 118.36547288894677,
              ymax: 41.64383821487438,
              spatialReference: {
                wkid: 4326
              }
            }),
            logo: false
          })

          var tjUAVLayer = new ArcGISDynamicMapServiceLayer(tjUAVurl)
          map.addLayer(tjUAVLayer)

          // *************************************************************************************** //

          var navToolbar = new Navigation(map)
          query('.zoomin').on('click', () => {
            navToolbar.activate(Navigation.ZOOM_IN)
          })
          query('.zoomout').on('click', () => {
            navToolbar.activate(Navigation.ZOOM_OUT)
          })
          query('.pan').on('click', () => {
            navToolbar.activate(Navigation.PAN)
          })
          query('.fullmap').on('click', () => {
            navToolbar.zoomToFullExtent()
          })
          query('.beforePic').on('click', () => {
            navToolbar.zoomToPrevExtent()
          })
          query('.afterPic').on('click', () => {
            navToolbar.zoomToNextExtent()
          })
  }
}

效果图

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值