借助 Google App Engine,您可以在 Google 的服务器上构建 和运行自己的自定义应用。App Engine 应用易于 创建、维护,并可根据流量和数据存储需求的变化轻松扩缩。您只需上传应用源代码,即可开始使用。如果您是 App Engine 开发新手,请务必先查看 App Engine Python 或 Node.js 快速入门,然后再继续。
Earth Engine 和 App Engine 可一起用于构建可扩缩的地理空间 应用。通常,您的 App Engine 代码包含 Earth Engine Python 客户端库,并使用 服务账号向 Earth Engine 后端发出请求。这样做的好处是,任何人都可以使用您的应用,而无需登录或成为 Earth Engine 注册用户。请注意,标准 Earth Engine 使用限制适用于每个服务 账号。
另一种开发方法是使用 客户端身份验证,而不是服务账号。使用这种方法, 您的应用访问者必须注册 Earth Engine 并登录。这种方法的好处是,向 Earth Engine 发出的请求使用最终用户的 凭据,因此您不太可能达到使用限制。挑战在于,您的用户 必须先注册 Earth Engine 并登录,然后才能使用该应用。
GitHub 上的 Earth Engine App Engine 演示目录 包含一组有用的 App Engine 示例。如需简要了解每个示例,请参阅示例应用页面。本文档提供了有关如何设置和部署 示例或您创建的自定义应用的说明。
使用 Earth Engine 部署 App Engine 应用
以下说明介绍了如何部署 演示应用。 Python 说明适用于 Mac OS 和 Linux。如果您在 Windows 上使用 Python, 请尝试此方法。
在 Google Cloud 云项目中启用 Earth Engine API
按照 这些说明启用 Earth Engine API 并创建或选择 Google Cloud 项目。
设置凭据
服务账号
服务账号可用于
授权代表使用您应用的任何人对 Earth Engine 发出的请求。
config.py文件包含使用服务账号
电子邮件地址和私钥文件的身份验证代码。如需使用服务账号设置身份验证,
请按照这些说明创建服务账号
和私钥文件。将密钥文件命名为.private-key.json,并将其移到您的项目目录中。
Python
请先设置 Earth Engine Python API(如果尚未设置)。按照 这些说明测试服务账号。
如果测试成功,请使用您的服务账号电子邮件地址更新 config.py(或源代码中的等效文件)。(密钥文件的路径不应更改
,因为它位于您的项目目录中)。
Node.js
运行 npm install 以安装项目的依赖项。Earth Engine
Node.js API 和任何其他依赖项都将复制到项目目录中的 ./node_modules
文件夹中。如果安装失败,请检查是否
安装了最新版本的 Node.js。对库进行身份验证和初始化,
并将 my-project 替换为您的 Google Cloud 云项目 ID:
const ee = require('@google/earthengine'); ee.data.authenticateViaPrivateKey('.private-key.json'); ee.initialize(null, null, null, null, null, 'my-project');
OAuth 2.0 客户端 ID
如果您希望用户以自己的身份进行身份验证(而不是使用服务账号), 您需要从 Cloud 项目设置 OAuth 客户端 ID。为此,请执行以下操作:
- 按照 这些说明设置客户端 ID。
- 更新
static/script.js(或源代码中的等效文件) 以使用您的客户端 ID。 - 确保
ee_api_js.js在/static/目录(或等效目录)中可用。您可以直接从 GitHub 下载该文件 , 也可以从 npm 安装该文件;如果您已克隆整个 EE API 代码库,则可以从本地文件系统上的earthengine-api/javascript/build复制该文件 。
设置本地开发环境
Python
按照 GitHub 上每个示例目录中的说明下载并构建
项目。如果存在 build.sh 文件,请使用以下命令从应用根
文件夹运行该文件:
./build.sh
设置脚本将下载依赖项并安装 Google 命令行工具(如果
您的系统上尚不存在这些工具)。Earth Engine Python API
及其
依赖项将复制到项目目录中的 ./lib 文件夹中。
运行以下命令,验证 App Engine 命令行工具是否可用:
dev_appserver.py
如果找不到该命令,请尝试手动下载并安装 适用于 Python 的 Google App Engine SDK。如果该命令可用,则应失败并显示 "error: too few arguments"。
Node.js
无需设置。
在本地运行
将您的服务账号注册为具有 Earth Engine 访问权限后,您可以在测试示例时使用该账号进行身份验证(请参阅 config.py)
when you test the examples.请先尝试在本地测试示例,方法是进入您的
项目目录并运行:
Python
dev_appserver.py .
Node.js
npm install npm start
将浏览器指向 http://localhost:8080,以查看在本地服务器上运行的应用。您所做的任何更改(并保存)都将在您刷新页面时 自动获取。