esri-loader 简介 esri-loader 是 ESRI 官方开源的加载器, 对 dojo 的加载器进行封装, 转换成 ES6 标准的 Promise 模式进行加载, 可以比较方便的在 ES6 esri-loader 使用 TypeScript 开发, 以 npm 包的形式发布。 esri-loader 安装 如果安装了 nodejs 环境, esri-loader 可以通过 npm 包的形式安装, 只需要输入 npm install esri-loader 即可安装。 使用 esri-loader 加载 ArcGIS JS API esri-loader 提供了 loadScript 函数, 来加载 arcgis-js-api 的初始化脚本, 这个函数的定义如下: export export function loadScript(options: ILoadScriptOptions = {}): Promise<HTMLScriptElement>; 根据这个定义, 使用 esri-loader
的AMD方式,示例代码如下所示(在这里仅仅演示React项目中的使用,Vue中的使用方式见文章后半部分): //直接使用esri-loader的then()方法链式回调 import React,{Component } from 'react'; import esriLoader from 'esri-loader'; import '. 这样的一种使用方式其实通过esri-loader是没法实现的,除非你对ArcGIS API for JavaScript的接口根据项目需要再进行封转。 总结 随着@arcgis/core方式的出现,目前我们在Vue或者React项目中使用ArcGIS API for JavaScript的开发方式由以前的一种变为了目前的两种方式:esri-loader 最后我们来看看@arcgis/core的这种ES Modules方式和传统的esri-loader的AMD方式有什么区别吧,下图是一张官网的截图,里面大概的比较了两种方式的区别:
本文主要针对于在Vue和React项目中使用esri-loader和@arcgis/cli脚手架进行ArcGIS JS API开发时,比较两种方式的不同,供各位参考。 概述 当我既写了esri-loader方式来进行ArcGIS JS API的开发文章,又写了@arcgis/cli脚手架的方式来进行ArcGIS JS API的开发文章之后,相信很多小伙伴看到后会产生“ 不要着急,我给你一个可供选择的参考,简单又实用: 如果项目已经在进行实施,中途可能需要用到ArcGIS JS API中的相关功能模块,那就选择esri-loader方式; 如果项目并未开始实施, 但是后期会有ArcGIS JS API中的相关功能需求,推荐使用@arcgis/cli脚手架,当然,你也可以用esri-loader方式。 主流技术方面 通过esri-loader方式进行JS API的开发时,其实我们很多情况下还在使用ES6甚至ES5的编码方式进行系统开发,项目系统中所用的各种主流插件是我们主动性地去增加配置的,换句话说,
3.2、在命令行中通过Ctrl+C来停止项目的运行,然后通过以下命令来安装esri-loader,如下: npm install esri-loader --save-dev 3.3、安装结束后 代码如下: #app { position: absolute; width: 100%; height: 100%; } 3.7、然后加载引入我们安装的esri-loader 插件,如下: import esriLoader from 'esri-loader'; 3.8、引入esri-loader之后,接下来就让我们的项目系统和JS API做一个衔接。 在这里大家一定要理解一个概念:我们在React中使用JS API时,调的接口这些还是我们传统开发调的那些接口API,esri-loader在这里仅仅是充当一个桥梁的作用,所以大家不要误认为esri-loader 也就是说,你最终使用的JS API开发包还是我们本地部署或者JS API官网的开发包,并不是esri-loader里面的开发包。
3.1、在Vue项目中使用JS API时已经不像传统的开发方式那样在index.html中引入JS和CSS文件来使用JS API,而是通过一个叫“esri-loader”的中间件,将我们的JS API和 3.2、在命令行中通过Ctrl+C来停止项目的运行,然后通过以下命令来安装esri-loader,如下: npm install esri-loader --save-dev 3.3、安装结束后 插件,如下: import {loadModules} from 'esri-loader'; 3.8、引入esri-loader之后,接下来就让我们的项目系统和JS API做一个衔接。 在这里大家一定要理解一个概念:我们在Vue中使用JS API时,调的接口这些还是我们传统开发调的那些接口API,esri-loader在这里仅仅是充当一个桥梁的作用,所以大家不要误认为esri-loader 也就是说,你最终使用的JS API开发包还是我们本地部署或者JS API官网的开发包,并不是esri-loader里面的开发包。
需要加载两个模块, 它们是 esri/tasks/QueryTask 和 esri/layers/FeatureLayer , 代码如下: import { loadModules } from 'esri-loader '; // 使用 esri-loader 提供的 loadModules 方法加载这两个模块 const [QueryTask, FeatureLayer] = await loadModules<[ import { loadModules } from 'esri-loader'; // 使用 esri-loader 提供的 loadModules 方法加载 FeatureLayer 模块 const
本文主要介绍如何在Vue和React项目中使用ArcGIS JS API进行开发,与以往的esri-loader开发方式不同的是,本文使用的是@arcgis/cli脚手架的开发方式。 概述 今天兴趣使然,在翻阅ArcGIS API for JavaScript官网的时候,发现了跟esri-loader方法不同的另外一种可以在Vue、React和Angular这种主流框架中使用JS API 如果想了解如何通过esri-loader来在Vue、React和Angular这种主流框架中使用JS API的开发,请移步至另外两篇文章: 《【番外】 React中使用ArcGIS JS API 此开发方式跟之前的esri-loader方法相比,有自身的优势也有不足之处,详情请看另一篇文章——《【测评】 使用@arcgis/cli脚手架和esri-loader方式进行ArcGIS JS API开发的测评
但是不知道是什么原因, ArcGIS API for Javascript 并没有实现这个功能, 不过可以使用 ESRI 官方维护的 esri-loader 对 Autocasting 进行扩展, 实现这样的功能 , 部分代码如下: import { loadModules } from 'esri-loader'; /** * create a webscene instance by json; * @ 最后 最后说一下, esri-loader 一直是 ArcGIS API for JavaScript 的加载神器, 隔离了 dojo 的入侵性, 让 ArcGIS API for JavaScript 轻松加载到常见的前端开发环境中, 包括今天的对 Autocasting 的扩展, 也是用到了 esri-loader。
然后我再项目里安装了esri-loader插件,因为要在Vue的demo里要使用ArcGIS JS API,所以要用到这东西,如果大家对这个过程不了解的话请移步至另一篇文章《【番外】 Vue中使用ArcGIS 2、初始化完demo,安装完插件之后,接下来我们引入esri-loader,并实例化一个基础的二维地图,代码如下: _createMapview: function() { const 附: 完整代码: import { loadModules } from 'esri-loader'; import defaultData from '..
附: 全部代码: import React from 'react'; import { loadModules } from 'esri-loader'; import '.
实现步骤 1、本文所用的demo同样是基于React框架搭建的,所以我们首先基于React框架搭建一个初始化项目,然后改写src目录下的App.js这个主文件,实例化出一张二维地图,这中间用到了esri-loader 附: TrafficNetwork组件代码: import React,{Component} from 'react'; import {loadModules} from 'esri-loader
实现步骤 1、本文所用的demo是基于React框架搭建的,所以我们首先基于React框架搭建一个初始化项目,然后改写src目录下的App.js这个主文件,实例化出一张二维地图,这中间用到了esri-loader 附: App.js全部代码 import React,{Component} from 'react'; import { loadModules } from 'esri-loader'; import
实现步骤 1、本文所用的demo同样是基于React框架搭建的,所以我们首先基于React框架搭建一个初始化项目,然后改写src目录下的App.js这个主文件,实例化出一张二维地图,这中间用到了esri-loader 附: 散点图绘制全部源码: import React,{Component} from 'react'; import {loadModules} from 'esri-loader'; import