Earth Engine JavaScript API 以 npm 软件包的形式分发,托管在 GitHub 上。以下说明概述了如何安装 Google Earth Engine JavaScript API。如需使用 Earth Engine JavaScript API,您需要在计算机上安装客户端库及其依赖项,然后设置身份验证凭据。
JavaScript 客户端库不包含 Earth Engine 代码编辑器的所有功能。值得注意的是,它不包含按钮、面板和图表等界面功能。
安装客户端库
1. 设置 Node.js 和 npm
npm 是 JavaScript 和 Node.js 的软件包管理器。验证您是否已安装 Node.js 6 及更高版本和 npm 3 及更高版本。
node --version npm --version
如有需要,请使用适用于您平台的官方安装程序安装这两者。
2. 安装 Earth Engine 客户端库
您可以使用以下命令从 npm 安装客户端库:
npm install --save @google/earthengine
安装完成后,客户端库会放置在当前项目目录 node_modules/@google/earthengine/* 中。在未来的项目中,请以相同的方式安装客户端。
3. 在应用中使用客户端库
在应用代码中,要求使用 Earth Engine API:
var ee = require('@google/earthengine');
更新客户端库
使用 npm 将客户端库更新到最新版本。从当前项目目录:npm update @google/earthengine
卸载客户端库
如需使用 npm 软件包管理器进行卸载,请运行以下命令:
npm uninstall --save @google/earthengine
这会从当前项目中移除 node_modules/@google/earthengine,但不会影响同一台机器上其他目录中的任何项目。
创建 Cloud 项目并激活 Earth Engine API
按照这些说明创建一个 Cloud 项目并启用 Earth Engine API。
设置身份验证凭据
Earth Engine API 使用 OAuth 2.0 协议对基于浏览器的客户端进行身份验证。对于 Node.js 中的服务器端身份验证,建议使用服务账号。Web 应用可以使用任一方法,下面将讨论这两种方法的优缺点。
使用 OAuth 进行客户端身份验证
通过网络浏览器中的客户端身份验证,应用的用户可以使用自己的 Google 账号登录。这些用户必须已获得 Earth Engine 的访问权限,并且有权读取您的应用使用的资源。
创建 OAuth 2.0 客户端 ID 后,请按如下所示进行身份验证(将 my-project 替换为您的 Google Cloud 项目 ID):
// Load client library. var ee = require('@google/earthengine'); // Initialize client library and run analysis. var initialize = function() { ee.initialize(null, null, function() { // ... run analysis ... }, function(e) { console.error('Initialization error: ' + e); }, null, 'my-project'); }; // Authenticate using an OAuth pop-up. ee.data.authenticateViaOauth(YOUR_CLIENT_ID, initialize, function(e) { console.error('Authentication error: ' + e); }, null, function() { ee.data.authenticateViaPopup(initialize); });
使用服务账号进行服务器端身份验证
通过服务器端身份验证,私钥会与您的应用一起存储,从而允许应用通过服务账号访问 Earth Engine API。应用的用户无需拥有自己的 Earth Engine 访问权限,也不需要登录。
在 Node.js 中,客户端库仅提供服务器端身份验证。
创建新的服务账号后,使用 JSON 私钥进行身份验证(将 my-project 替换为您的 Google Cloud 项目 ID):
// Require client library and private key. var ee = require('@google/earthengine'); var privateKey = require('./.private-key.json'); // Initialize client library and run analysis. var runAnalysis = function() { ee.initialize(null, null, function() { // ... run analysis ... }, function(e) { console.error('Initialization error: ' + e); }, null, 'my-project'); }; // Authenticate using a service account. ee.data.authenticateViaPrivateKey(privateKey, runAnalysis, function(e) { console.error('Authentication error: ' + e); });
测试安装
如需测试身份验证是否已正确设置,请运行以下脚本(将 my-project 替换为您的 Google Cloud 项目 ID):
var ee = require('@google/earthengine'); // Authenticate using one (but not both) of the methods below. ee.data.authenticateViaOauth(YOUR_CLIENT_ID); ee.data.authenticateViaPrivateKey(YOUR_PRIVATE_KEY); ee.initialize(null, null, null, null, null, 'my-project'); // Run an Earth Engine script. var image = new ee.Image('srtm90_v4'); image.getMap({min: 0, max: 1000}, function(map) { console.log(map); });
如果一切都已正确安装,系统应会输出图片的元数据。