此演示展示了如何使用 Directions API(旧版)获取从一个地点到另一个地点的行车路线。您可以免费运行此演示。单独运行此演示不会超出您的每月配额。
准备工作
如需使用 Directions API(旧版),请完成以下必要的设置步骤:
第 1 步:设置项目
控制台
-
在 Google Cloud 控制台中,打开项目选择器页面,点击创建项目以开始创建新的 Cloud 项目。
-
确保您的 Cloud 项目已启用结算功能。确认您的项目已启用结算功能。
Google Cloud 提供免费试用。试用期将在 90 天后或者账号费用累积达到 300 美元时(以先到者为准)结束。您随时可以取消试用。如需了解详情,请参阅结算账号赠金和结算。
Cloud SDK
gcloud projects create "PROJECT"
详细了解 Google Cloud SDK、Cloud SDK 安装和以下命令:
第 2 步:启用 API 或 SDK
如要使用 Google Maps Platform,您必须启用计划用于项目的 API 或 SDK。
控制台
Cloud SDK
gcloud services enable \ --project "PROJECT" \ "directions-backend.googleapis.com"
详细了解 Google Cloud SDK、Cloud SDK 安装和以下命令:
第 3 步:获取 API 密钥
此步骤仅包含 API 密钥的创建流程。如要在生产环境中使用 API 密钥,强烈建议您为相应密钥设置限制。如需了解详情,请参阅相应产品的使用 API 密钥页面。
API 密钥是唯一标识符,用于对与您的项目相关联的请求进行身份验证,以便您使用相关产品和执行结算。您必须至少有一个与您项目相关联的 API 密钥。 如需创建新密钥或向现有密钥添加 API 或 SDK,请按照以下说明操作。
控制台
-
前往 Google Maps Platform > 密钥和凭证页面。
- 如果出现提示,请选择您的项目。
-
执行以下其中一项操作:
-
创建新密钥:
- 点击创建凭据 > API 密钥。
- 在创建 API 密钥面板中,打开选择 API 限制列表。
- 清除此密钥不需要的所有 API,并确保 Directions API 保持选中状态。
- 点击创建。该面板会显示您的新 API 密钥。
-
使用现有密钥:
- 点击密钥的名称。
- 在选择 API 限制列表中,选择 Directions API。
- 点击保存。
在此处选择 API 并不会启用它。确保已在 API 库页面上启用 Directions API。
-
- 如需稍后查看密钥字符串,请前往密钥和凭证页面,然后点击相应密钥的显示密钥。
Cloud SDK
在以下命令中,将 PROJECT_ID 替换为您的项目 ID。
-
创建新密钥:运行以下命令,并将 DISPLAY_NAME 替换为密钥的名称。
gcloud services api-keys create \ --project="PROJECT_ID" \ --display-name="DISPLAY_NAME" \ --api-target=service=directions-backend.googleapis.com
详细了解 Google Cloud SDK、Cloud SDK 安装和以下命令:
-
使用现有密钥:运行以下命令,并将 KEY_ID 替换为密钥的 ID。
--append标志会保留密钥已允许的 API。如果不使用此参数,该命令会替换这些标签。gcloud services api-keys update KEY_ID \ --project="PROJECT_ID" \ --append \ --api-target=service=directions-backend.googleapis.com
详细了解 Google Cloud SDK、Cloud SDK 安装和以下命令:
键 ID 不是键字符串或显示名称。如需查找该 ID,请运行
gcloud services api-keys list --project="PROJECT_ID"。 该 ID 是name字段的最后一部分:projects/PROJECT_NUMBER/locations/global/keys/KEY_ID。
如需查看密钥字符串,请运行 gcloud services api-keys get-key-string KEY_ID
--project="PROJECT_ID"。
获取路线
如需接收从迪士尼乐园到好莱坞环球影城的 JSON 格式行车路线,请将以下网址输入到网络浏览器中,并将 YOUR_API_KEY 替换为您的 API 密钥:
https://maps.googleapis.com/maps/api/directions/json?origin=Disneyland&destination=Universal+Studios+Hollywood&key=YOUR_API_KEY您应该会收到以下 JSON 响应:
{ "geocoded_waypoints" : [ { "geocoder_status" : "OK", "place_id" : "ChIJRVY_etDX3IARGYLVpoq7f68", "types" : [ "bus_station", "transit_station", "point_of_interest", "establishment" ] }, { "geocoder_status" : "OK", "partial_match" : true, "place_id" : "ChIJp2Mn4E2-woARQS2FILlxUzk", "types" : [ "route" ] } ], "routes" : [ { "bounds" : { "northeast" : { "lat" : 34.1330949, "lng" : -117.9143879 }, "southwest" : { "lat" : 33.8068768, "lng" : -118.3527671 } }, "copyrights" : "Map data ©2016 Google", "legs" : [ { "distance" : { "text" : "35.9 mi", "value" : 57824 }, "duration" : { "text" : "51 mins", "value" : 3062 }, "end_address" : "Universal Studios Blvd, Los Angeles, CA 90068, USA", "end_location" : { "lat" : 34.1330949, "lng" : -118.3524442 }, "start_address" : "Disneyland (Harbor Blvd.), S Harbor Blvd, Anaheim, CA 92802, USA", "start_location" : { "lat" : 33.8098177, "lng" : -117.9154353 }, ... Additional results shortened in this example[] ... "overview_polyline" : { "points" : "knjmEnjunUbKCfEA?_@]@kMBeE@qIIoF@wH@eFFk@WOUI_@?u@j@k@`@EXLTZHh@Y`AgApAaCrCUd@cDpDuAtAoApA{YlZiBdBaIhGkFrDeCtBuFxFmIdJmOjPaChDeBlDiAdD}ApGcDxU}@hEmAxD}[tt@yNb\\yBdEqFnJqB~DeFxMgK~VsMr[uKzVoCxEsEtG}BzCkHhKWh@]t@{AxEcClLkCjLi@`CwBfHaEzJuBdEyEhIaBnCiF|K_Oz\\ {MdZwAbDaKbUiB|CgCnDkDbEiE|FqBlDsLdXqQra@kX|m@aF|KcHtLm@pAaE~JcTxh@w\\`v@gQv`@}F`MqK`PeGzIyGfJiG~GeLhLgIpIcE~FsDrHcFfLqDzH{CxEwAbBgC|B}F|DiQzKsbBdeA{k@~\\oc@bWoKjGaEzCoEzEwDxFsUh^wJfOySx[uBnCgCbCoFlDmDvAiCr@eRzDuNxC_EvAiFpCaC|AqGpEwHzFoQnQoTrTqBlCyDnGmCfEmDpDyGzGsIzHuZzYwBpBsC`CqBlAsBbAqCxAoBrAqDdDcNfMgHbHiPtReBtCkD|GqAhBwBzBsG~FoAhAaCbDeBvD_BlEyM``@uBvKiA~DmAlCkA|B}@lBcChHoJnXcB`GoAnIS~CIjFDd]A|QMlD{@jH[vAk@`CoGxRgPzf@aBbHoB~HeMx^eDtJ}BnG{DhJU`@mBzCoCjDaAx@mAnAgCnBmAp@uAj@{Cr@wBPkB@kBSsEW{GV}BEeCWyAWwHs@qH? cIHkDXuDn@mCt@mE`BsH|CyAp@}AdAaAtAy@lBg@pCa@jE]fEcBhRq@pJKlCk@hLFrB@lD_@xCeA`DoBxDaHvM_FzImDzFeCpDeC|CkExDiJrHcBtAkDpDwObVuCpFeCdHoIl\\uBjIuClJsEvMyDbMqAhEoDlJ{C|J}FlZuBfLyDlXwB~QkArG_AnDiAxC{G|OgEdLaE`LkBbEwG~KgHnLoEjGgDxCaC`BuJdFkFtCgCnBuClD_HdMqEzHcBpB_C|BuEzCmPlIuE|B_EtDeBhCgAdCw@rCi@|DSfECrCAdCS~Di@jDYhA_AlC{AxCcL`U{GvM_DjFkBzBsB`BqDhBaEfAsTvEmEr@iCr@qDrAiFnCcEzCaE~D_@JmFdGQDwBvCeErEoD|BcFjC}DbEuD~D`@Zr@h@?d@Wr@}@vAgCbEaHfMqA`Cy@dAg@bAO`@gCi@w@W" }, "summary" : "I-5 N and US-101 N", "warnings" : [], "waypoint_order" : [] } ], "status" : "OK" }
恭喜!您已成功设置并调用 Directions API(旧版)来接收路线。
清理
您可以删除 Google Cloud 项目,以停止对该项目中使用的所有资源计费。
- 在 Google Cloud 控制台中,转到管理资源页面:
- 如果您打算删除的项目已附加到某个组织,请选择并展开页面顶部的组织列表。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关停以删除项目。
后续步骤
通过设置 Google Cloud 云项目,开始使用 Directions API(旧版)进行开发:
如需查看构建 Directions API(旧版)HTTP 请求时的所有参数列表,请参阅:
了解如何使用我们的客户端库进行编码,这些库提供了常见任务(例如身份验证、请求限制和自动重试)的简单原生实现。适用于 Google 地图服务的 Java 客户端、Python 客户端、Go 客户端和 Node.js 客户端中提供了 Directions API(旧版)。