1,arcgis_for_javascript的使用方式
arcgis_for_javascript有两种使用方式,AMD和ES
其中AMD方式是用的require(),适合于dojo或者没使用前端框架
如果使用VUE等前端框架,则需要使用ES的方式,用的是import方式
2,在vue中使用arcgis_for_javascript
安装 :
npm install @arcgis/core
使用:
import "@arcgis/core/assets/esri/themes/light/main.css";
import Map from "@arcgis/core/Map";
import TileLayer from "@arcgis/core/layers/TileLayer";
import MapImageLayer from "@arcgis/core/layers/MapImageLayer";
import MapView from "@arcgis/core/views/MapView";
import FeatureLayer from "@arcgis/core/layers/FeatureLayer";
3,初始化的Map,无法赋值给data属性
如果在data中声明变量,然后初始化Map和View后,赋值给它。再次调用时会报错。
data() {
return {
myMap: null,
myView: null,
};
},
methods: {
initMap() {
let map = new Map({
basemap: "streets-vector",
});
this.myMap = map;
let view = new MapView({
container: "esriMap",
map: map,
zoom: 5,
center: [118.55, 29.3],
});
this.myView = view;
},
}
可以看出,赋值后,变成了Proxy对象,解决的办法是不要在data中提前声明。
image.png
4.内网部署
以上虽然可以打开地图,但是,我的需求是部署在内网中,在内网中部署后发现会报错误,请求的还是arcgis的在线地址。问了朋友才知道,还需进行以下操作
1.在package.json包中 安装依赖包 "ncp": "^2.0.0"; npm install ncp@2.0.0 --save
2.在package.json中加入script命令 "copy": "ncp ./node_modules/@arcgis/core/assets ./public/assets"
运行ncp命令,会将arcgis的包拷贝到项目目录 npm run ncp
3.在main.js主程序中引入配置文件,设置配置目录
import esriConfig from "@arcgis/core/config.js";
esriConfig.assetsPath = "./assets";
以上就完成了内网配置
网友评论