VUE如何引入ArcGis

BUAACST 2017-09-18

首先,关于vue+arcgis的博文很少。下面我整理出我所能找到的。

国内:

1.vue-cli&webpack&arcgis API For JS的天坑之路(一) 这个博主一共讲了关于vue+arcgis的3个坑,有兴趣可前往博主那儿看。相关源码:LorryAdmin

*ArcGIS API for JavaScript 与 Vue.js 这篇博文仅仅提及了一下,以及告诉我们上面那篇博文的博主是个女生。

国外:

1.官网:Custom widgets with Vue (如果跟着此教程一步一步来也运行不起来,可以直接打开liveDemo地址把网页保存下来,慢慢看 可以去在线编辑:Sandbox

2.youtube(Rene Rubalcava):

Using VueJS with ArcGIS API for JavaScript (简单介绍)

ArcGIS API 4 for JavaScript with vue-cli and Nuxt(非常详细,整个过程都有讲解)

Using Frameworks with the ArcGIS API for JavaScript (在46分,此链接已经定位)

3.github 

CreateMap (一个你选择需要叠加的图层之后生成地图的应用)

MapGallery_Vue (一个浏览地图的应用)

---------------------------------------------------------------------------------------------------------------------------------------

以上是相关资料的整合。下面简单介绍一下该如何实现vue+arcgis。(昨天才开始接触vue和arcgis js,错误请指出,谢谢)

**********************以下前提为已有的VUE项目作为基础,所有涉及到的map均为ArcGis的map,而非数据结构的map********************************

1.首先,需要使用“esri-loader”,将esri依赖引入,就像其他各种loader一样。

在应用目录,使用npm安装 esri-loader。运行:npm install esri-loader

<很好,一堆警告,所以我一般不用npm下载依赖。可以使用yarn>
VUE如何引入ArcGis

使用yarn:yarn add esri-loader (tips:其实package.json的依赖都可以直接使用yarn 下载的,命令:yarn 或者 yarn install )

VUE如何引入ArcGis
 

2.在你的component文件夹下新建一个新的component:map.vue
 1)加入最基本的template,以及加入存放map的一个容器。

<template>
	<div id="viewDiv"></div>
</template>
 很好,我们已经给map建了一座房子,现在就请arcgis的map进来住吧!

2)在template下面加入script标签,开始写我们的逻辑啦!首先,需要引入esri-loader,esri-loader是把map引入的重要工具。就相当于一辆汽车把arcgis送到我们的房子里面

<template>
	<div id="viewDiv"></div>
</template>
<script>
    import * as esriLoader from 'esri-loader'
</script>

 3)写大体的框架。

<template>
	<div id="viewDiv"></div>
</template>
<script>
    import * as esriLoader from 'esri-loader'
    export deault{
        mounted(){}, //我们需要在该组件装载之后做的事情都放在该方法里
        methods: {} //我们需要执行的方法都定义在该属性里
    }
</script>

 4)需要在该vue组件装载完成后,我们需要把esriLoader引入/启动。

<template>
	<div id="viewDiv"></div>
</template>
<script>
    import * as esriLoader from 'esri-loader'
    export deault{
        mounted(){
           if (!esriLoader.isLoaded()) {//判断是否加载
	       esriLoader.bootstrap((err) => {//加载esriloader
	         if (err) {
	           console.error(err)
	         }
	       }, {
	         url: 'https://js.arcgis.com/4.4/'
	       })
	     }
        }, //我们需要在该组件装载之后做的事情都放在该方法里
        methods: {} //我们需要执行的方法都定义在该属性里
    }
</script>

 5)既然把需要的东西都引入之后,那么就开始调用构建map的方法了。在methods里面加入创建地图的方法。

过程大致如下:创建一个map,定义好map的相关属性(basemap,地图样式等),再定义一个MapView,设置相关的属性(缩放级别,中心点等),然后view指定一个容器(div),再把前面定义好的map放入即可。

首先,创建一个createMap() 方法,然后和ArcGis Js api一样,用dojo引入依赖。这里,我们需要WebMap(这里为了方便演示效果,就使用WebMap)和普通的MapView依赖。

  1.加入需要的依赖

<template>
	<div id="viewDiv"></div>
</template>
<script>
    import * as esriLoader from 'esri-loader'
    export deault{
        mounted(){
           if (!esriLoader.isLoaded()) {//判断是否加载
	       esriLoader.bootstrap((err) => {//加载esriloader
	         if (err) {
	           console.error(err)
	         }
	       }, {
	         url: 'https://js.arcgis.com/4.4/'
	       })
	     }
        }, //我们需要在该组件装载之后做的事情都放在该方法里
        methods: {
            createMap: function () {
	        esriLoader.dojoRequire([
	            'esri/WebMap',
         	    'esri/views/MapView'
	   	    ],(WebMap, MapView) => { })
	   	}
   } //我们需要执行的方法都定义在该属性里
    }
</script>
  2.创建webmap。使用id方式创建webMap

相关推荐