工具简介

概览

GeoScene Maps SDK for JavaScript 可作为 AMD 和 ES 模块使用。

API 的模块将功能划分为逻辑子集。AMD 模块实现异步模块定义格式,它们使用 require() 方法和第三方脚本加载器来加载模块及其依赖项。ES 模块,也称为 ECMAScript 模块或简称为 ESM,是一种官方的标准化模块系统,通过 import 语句与所有现代浏览器原生兼容。ES 模块不需要单独的脚本加载器。

我应迁移到 ES 模块吗?

如果您在没有 JavaScript 框架或本地构建工具的情况下使用 AMD CDN,则无需迁移。AMD 模块将在未来版本中推出。

ES 模块和 AMD 模块具有相同的 API 功能。例如,以下代码片段提供了等效的功能。

ES 模块

代码块使用深色复制
           
1
2
3
4
5
6
7
8
9
10
11
import Map from '@geoscene/core/Map';
import MapView from '@geoscene/core/views/MapView';

const map = new Map({
  basemap: "tianditu-vector"
});

const view = new MapView({
  container: "viewDiv",
  map: map
}); 

AMD

代码块使用深色复制
          
1
2
3
4
5
6
7
8
9
10
require(["geoscene/Map", "geoscene/views/MapView"], (Map, MapView) => {
  const map = new Map({
    basemap: "tianditu-vector"
  });

  const view = new MapView({
    container: "viewDiv",
    map: map
  });
}); 

比较 AMD 和 ES 模块

以下是使用 AMD 和 ES 模块的一些常见原因。

CDN (AMD)CDN (ESM)ESM 本地构建AMD 本地构建
无需安装、配置或本地构建XX
通过 CDN 缓存实现快速下载性能X
仅用于测试X
通过 npm 轻松安装X
与大多数现代框架和构建工具无缝集成X
将 API 4.17 或更早版本与框架或构建工具一起使用X
使用 Dojo 1 或 RequireJSX

CDN (AMD)

使用 AMD CDN 的优势包括:

  • 快速下载和高度优化的缓存。
  • 无需安装或配置。
  • 将 API 自动更新到最新版本。

CDN (ESM)

ES 模块 CDN 仅用于测试,并未针对性能进行优化。要获得 ES 模块的最佳性能,请在本地构建它们。

ES 模块本地构建

在本地构建 ES 模块的优点包括:

  • 与主流浏览器本地集成的标准化模块系统。
  • 不需要单独的帮助程序或模块加载程序库。
  • 与大多数现代框架和构建工具无缝集成。
  • 使用某些第三方库时没有多重定义问题。
  • 为 node.js 部署提供服务器端功能,例如 geometryEngine

缺点包括:

  • API 更新需要安装新版本并重新构建应用程序。

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。