在vue中使用ArcGIS API调取天地图底图并与ArcGIS Server发布的矢量瓦片相叠加

1.如何在vue中使用ArcGIS API

在vue中想要让Webpack认识ArcGIS API需要安装esri-loader

第一步:通过npm安装esri-loader

安装命令:npm install esri-loader -S

第二步:在需要使用ArcGIS API的页面进行引入

HTML部分:(注意:地图是要挂载在dom元素上的)

<template>
	<div id='map'> </div>
</template>

JS部分:
import esriLoader from 'esri-loader'

第三步:引入ArcGIS 的一些在线API,和在线样式链接(注意:为了获得地图更快的加载速度,和稳定性,我们需要离线部署一套ArcGIS API,过几天会单独出一期如何离线部署ArcGIS API)

JS部分:

mounted() {
	const option = {url:'https://js.arcgis.com/4.3/'};
}

CSS部分:

@import url("https://js.arcgis.com/4.3/esri/css/main.css")
第四步:开始书写我们加载地图的代码

注意:esriLoader有以下几个方法:

  1. getScript() 从库里面获取JS文件;get the script injected by this library
  2. isLoaded() 检测模块是否加载完成;
  3. loadModules([ ],options)用于加载ArcGIS模块;
  4. loadCss(url)用于加载css文件;
  5. loadScript({url:‘xxxxxxxx’})将js加载到页面上

在mounted钩子中进行挂载

mounted() {
const option = {url: 'https://js.arcgis.com/4.3/'}    //注意:不同版本的ArcGIS API的用法可能不一样

esriLoader.loadModules ([
		"dojo/dom",    //该模块定义了核心的dojo DOM构建API。
          "dojo/on",    //是用于DOM节点和其他事件发出对象的通用事件处理程序模块,提供规范化的事件侦听和事件分派功能。
          "dojo/_base/declare",   //包含用于定义Dojo类的函数,这些类支持Dojo中的标准面向对象的概念,使用来模拟基于类的继承的功能。
          "dojo/json",    //是基于标准的ES5的JSON对象进行JSON解析和序列化的模块
          "dojo/_base/lang",   //包含用于支持多态和其他语言构造的功能,这些功能是该工具包其余部分的基础。
          "dojo/_base/url",
          "dojo/string",     //提供了一些简单的字符串操作实用程序(包括修剪(trim)、填充(pad)、重复(rep)、替换(replace))
          "dojo/dom-construct",  //该模块定义了核心的dojo DOM构建API。此模块的返回变量的约定为domConstruct。
          "dojo/number",    //包含用户展示javascript Number对象的方法:格式化、解析和舍入
          "esri/Map",    //Map类创建一个容器和必须的DOM结构,以添加图层、图形、信息窗口和其他导航控件
          "esri/geometry/Extent",    //边界框的最小和最大X坐标和Y坐标
          "esri/layers/support/TileInfo",   //包含有关TileLayers、ElevationLayers和Web TileLayers的切片方案的信息
          "esri/layers/support/LOD",   //一个ArcGISTiledMapServiceLayer有许多的LOD(细节层次)的。每个LOD对应于给定比例或分辨率的地图。
          "esri/geometry/SpatialReference",   //定义视图、图层或任务参数的空间参考。这表示用于在地图中定位地理要素的投影坐标系或地理坐标系。每个投影的地理坐标系都是由众多周知的ID
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供实现的步骤,具体如下: 1. 在Vue项目引入ArcGIS API for JavaScript,可以使用以下的CDN链接: ```html <script src="https://js.arcgis.com/4.18/"></script> ``` 2. 创建一个地图容器,可以在Vue的模板添加以下代码: ```html <template> <div id="mapView"></div> </template> ``` 3. 在Vue的script初始化地图和MapView实例,并将其挂载到地图容器上: ```javascript <script> import { loadModules } from 'esri-loader'; export default { name: 'MapComponent', data() { return { mapView: null } }, mounted() { // 加载ArcGIS API for JavaScript模块 loadModules(['esri/Map', 'esri/views/MapView']).then(([Map, MapView]) => { // 创建地图实例 const map = new Map({ basemap: 'streets' }); // 创建MapView实例并挂载到地图容器上 this.mapView = new MapView({ container: 'mapView', map: map, center: [121.47, 31.23], zoom: 10 }); }); } } </script> ``` 4. 添加点位数据到地图上,可以在Vue的methods添加以下代码: ```javascript addPoint() { // 加载ArcGIS API for JavaScript模块 loadModules(['esri/Graphic']).then(([Graphic]) => { // 创建点位数据 const point = { type: 'point', longitude: 121.47, latitude: 31.23 }; // 创建点位数据的符号 const pointSymbol = { type: 'simple-marker', color: [226, 119, 40], outline: { color: [255, 255, 255], width: 2 } }; // 创建点位数据的Graphic实例 const pointGraphic = new Graphic({ geometry: point, symbol: pointSymbol }); // 将点位数据添加到地图上 this.mapView.graphics.add(pointGraphic); }); } ``` 5. 在Vue的模板添加一个按钮,用于触发添加点位数据的方法: ```html <template> <div> <div id="mapView"></div> <button @click="addPoint">添加点位数据</button> </div> </template> ``` 这样,您就可以在Vue调用ArcGIS API for JavaScript来创建地图并添加点位数据了。当然,您还可以根据自己的需求来进一步定制和扩展地图功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值