ArcGIS API for JavaScript是将地理信息或者地理数据进行可视化表达或者地理分析处理的JS库,可用于浏览器环境和Node.js环境。要在项目中使用ArcGIS JS API,有下面几种方式。
AMD与ESM
选择API安装方式的前置条件,只做简单介绍。
-
AMD是”Asynchronous Module Definition”的缩写,意思就是”异步模块定义”。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
require([module], callback);
第一个参数
[module]
,是一个数组,里面的成员就是要加载的模块;第二个参数callback
,则是加载成功之后的回调函数。 -
ES Module把一个文件当作一个模块,每个模块有自己的独立作用域,核心点就是模块的导入(import)与导出(export)。
-
export
后只能跟function
、class
、var
、let
、const
、default
、{}
,export的作用就是给当前模块对象添加属性,方便后期导入到其他模块中,其中export default
方法最常用。 -
import
命令用于导入其他模块提供的数据,格式:import <module> from <url>
-
API安装的四种方式
访问API的最常见方法是使用托管版本。
<link rel="stylesheet" href="https://js.arcgis.com/4.20/esri/themes/light/main.css"> <script src="https://js.arcgis.com/4.20/"></script>
API也可以通过npm作为ES模块使用。你可以在本地安装API,以便与React和Vue等JavaScript框架以及webpack等打包器一起使用。
修改API中init.js
文件和dojo.js
文件,将修改好的API部署在自有服务器中,用于网络缺失及网络较差的环境中。
注意:这种方法目前只推荐用于开发和原型阶段。
<link rel="stylesheet" href="https://js.arcgis.com/4.20/@arcgis/core/assets/esri/themes/light/main.css"> <script type="module"> import Map from "https://js.arcgis.com/4.20/@arcgis/core/Map.js"; </script>
服务器配置
托管 ArcGIS API for JavaScript 的 Web 服务器将需要注册以下 MIME/type(主要为IIS)。