301Arcgis_for_js安装配置4.21(01)

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 [email protected] --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";
以上就完成了内网配置

你可能感兴趣的:(301Arcgis_for_js安装配置4.21(01))