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 套件管理工具解除安裝,請執行下列指令:
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 中進行伺服器端驗證,建議使用服務帳戶。網頁應用程式可採用任一方法,優缺點如下所述。
使用 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); });
如果一切都已正確安裝,系統應會列印圖片的中繼資料。