ArcGis for javascript 切换底图、添加自定义部件!!!

效果图

在这里插入图片描述
在线预览 如果跟上图不一致请按 Ctrl + F5,或在评论区反馈。

前言

项目中需要使用 ArcGis 来实现地图功能,至于为什么不适用百度、高德,是因为据说 ArcGis 定位会准一点。初次接触 Arcgis for javascript,踩坑之路很舒服,写下来记录下,也希望能够帮到需要的人。

js

基础的入门代码大家可以直接粘贴 ArcGis for javascript 绘制线!!! 中的例子,这里不做赘述。

import { loadModules } from 'esri-loader'

export default {
  name: 'ArcGisSwitchMap',
  data () {
    return {
      view: null,
      // 默认底图
      defaultBaseMap: 'osm'
    }
  },
  mounted () {
    loadModules(['esri/Map', 'esri/views/MapView'], { css: true })
      .then(([ArcGISMap, MapView]) => {
        // 配置地图的底图
        const map = new ArcGISMap({
          basemap: this.defaultBaseMap
        })
        // 地图视图对象
        this.view = new MapView({
          // 容器
          container: document.getElementById('map'),
          // 中心点
          center: [117.129359, 31.839979],
          map: map,
          // 缩放
          zoom: 14
        })

        // 将自定义的tool添加到视图中
        this.view.ui.add(this.switchMapBtn(map), 'top-left')
      })
  },
  methods: {
    // 地图切换按钮
    switchMapBtn (map) {
      const btn = document.createElement('img')
      btn.src = require('@/assets/img/switch-map.jpg')
      btn.style.width = '32px'
      btn.style.height = '32px'
      btn.style.cursor = 'pointer'
      btn.onclick = () => {
        this.defaultBaseMap = map.basemap = this.defaultBaseMap === 'osm' ? 'satellite' : 'osm'
      }
      return btn
    }
  },
  beforeDestroy () {
    this.view = null
  }
}

参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
好的,关于您的问题,我会尽力回答。首先,您想要了解如何优化添加图层的方法,需要先搭建一个Vue项目并加载底图。以下是一些步骤: 1. 安装Vue CLI Vue CLI是一个官方提供的脚手架工具,可以帮助我们快速搭建Vue项目。您可以通过以下命令进行安装: ``` npm install -g @vue/cli ``` 2. 创建Vue项目 在安装好Vue CLI之后,您可以通过以下命令创建一个Vue项目: ``` vue create my-project ``` 其中,my-project是您想要创建的项目名称。在创建项目的过程中,您需要选择一些配置选项,比如要不要使用ESLint等。如果您不想手动选择,可以通过以下命令创建一个默认配置的项目: ``` vue create my-project --default ``` 3. 安装ArcGIS API for JavaScript 在创建好Vue项目之后,需要安装ArcGIS API for JavaScript。您可以通过以下命令进行安装: ``` npm install --save arcgis-js-api ``` 4. 加载底图 在安装好ArcGIS API for JavaScript之后,您可以在Vue组件中使用ArcGIS API来加载底图。以下是一个简单的示例: ```html <template> <div id="viewDiv"></div> </template> <script> import { loadModules } from 'esri-loader'; export default { name: 'Map', mounted() { loadModules(['esri/Map', 'esri/views/MapView']).then(([Map, MapView]) => { const map = new Map({ basemap: 'streets' }); const view = new MapView({ container: 'viewDiv', map: map, zoom: 12, center: [-118.244, 34.052] }); }); } }; </script> ``` 在这个示例中,我们使用了loadModules函数来异步加载ArcGIS API中的Map和MapView模块。在加载完成之后,我们创建了一个Map对象,并把它作为参数传递给MapView对象,最后在一个div元素中显示地图。 希望这些步骤能够对您有所帮助,如果您有任何问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帝尊菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值