本文档有更新版本,其中包含有关如何使用新的 Places API 和 Routes API 的示例。
通常,当用户驾车前往某个地图注点 (POI) 时,实际上需要导航到附近的某个位置,例如停车场或入口点。假设某位司机需要前往机场或购物中心。前往机场时,司机尝试到达的是航站楼或下客点,而不是机场综合体的中心。同样,对于有车的用户来说,购物中心旁边的停车场可能是一个更好的选择。在这种情况下,当开发用于引导驾驶员的应用或服务时,首先要找到驾驶员要去的位置,然后向驾驶员提供该位置附近的备选目的地。这种方法只需少量但巧妙的开发工作,即可利用 Google Maps Platform 提供的位置数据,为客户提供更好的服务,并表明您非常重视客户的时间。
简化视图:在引导驾驶员驾车前往某位置时所涉及的系统

我们将展示如何依次或组合使用 Places API 和 Directions API 来确定目的地附近的合适停车位置。此解决方案旨在消除不确定性,减少多次互动,以便在更接近最终目的地时找到停车位。下面,我们来看两个示例,详细了解如何实现这些用例。
示例 1 - 没有停车场的旅游景点
我们选择一个未直接连接到路边的位置,以便单独检索路线,目的地是巴黎的巴黎圣母院,起点是巴黎东站 (48.87697775149635, 2.3592247806755564)。

司机大约在巴黎圣母院以北 16 分钟车程处离开车站。巴黎圣母院是岛上著名的旅游景点,可通过桥梁抵达,附近有一些单行道,没有大型停车场,因此这应该是一项有趣的挑战。
Places API 请求
此示例 Places API 请求使用“文本搜索”来查找巴黎圣母院。如需了解详情,请参阅开发者文档。在这些示例中,“YOUR_KEY”是指您在 Google Cloud 控制台中为 Google Maps Platform Places API 和 Directions API 启用的 API 密钥。如需更详细的说明,请参阅 Google Maps Platform 使用入门文档。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=notre_dame&location=48.864716%2C2.349014®ion=fr&key=YOUR_KEY
上述请求的响应会提供以下纬度和经度坐标:
"results" : [ { "formatted_address" : "Notre Dame, Paris", "geometry" : { "location" : { "lat" : 48.8527288, }, ...
如您所见,这些坐标确实指向巴黎圣母院。
![]() |
![]() |
作为开发者或服务提供商,最好自动提示司机“想在巴黎圣母院附近寻找停车位吗?”。用户体验会因设备和屏幕而异,但在此情况下,可以考虑使用在短时间后消失的细微弹出式文本。如需查找巴黎圣母院附近的停车位,请执行 Places API 文本搜索,并将类型参数设置为“parking”,半径参数设置为“300”。此示例会将结果偏向于距离巴黎圣母院 300 米以内的停车区。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=parking
&location=48.8527288%2C2.3505635®ion=fr&type=parking&radius=300&key=YOUR_KEY
第一条结果是“Parking Saemes Maubert-Lagrange”,坐标为 48.850591, 2.3486436。 我们将在下一部分中使用此位置信息,在其中发出 Directions API 请求。
Directions API 请求
如需查找从车站到巴黎圣母院附近停车区的路线,您需要发出 Directions API 请求。只需设置出发地和目的地参数即可。如需了解更多选项,请参阅开发者文档。
https://maps.googleapis.com/maps/api/directions/json?origin=48.8767903,2.3592251&destination=48.850591%2C2.3486436&key=YOUR_KEY
Directions API 响应通常包含多条路线建议。每条路线都包含多个“路段”,而每个路段又包含多个“步骤”,其中显示了行驶距离和坐标。如需查找驾车可到达的最终坐标,请使用所选路线中最后一段路程的最后一步的“end_location”字段。
这个位置可能看起来不是首选,但当您查看地图或 Google 街景时,会发现这个位置距离巴黎圣母院非常近,步行约 6-7 分钟即可到达。

从停车场到巴黎圣母院的步行路线
示例 1 的摘要
如您所见,为汽车寻找停车区只需进行几次 API 调用,然后向司机显示建议。这样一来,用户就无需在单行道上绕行,也无需在拥挤的旅游景点中寻找停车位,从而节省了时间。总结来说,我们发出了以下 API 请求:
- 用于查找巴黎圣母院坐标的 Places API 请求
- Places API 请求,用于查找相应坐标 300 米范围内的停车区
- 用于查找前往停车区的路线的 Directions API 请求
示例 2 - 在大型机场引导前往航站楼

"types" : [ "airport", "point_of_interest", "establishment" ],
不过,去过任何大型机场的人都知道,如果您恰好在错误的位置降落,那么在航站楼之间换乘需要花费大量时间。在这种情况下,由于搜索结果的类型为“机场”,因此使用伦敦希思罗机场的位置 (51.47016927594547, -0.45432767852489075) 自动跟进查询以搜索“航站楼”非常有用。在示例中,您还可以看到搜索半径为 3,000 米的可选限制。
https://maps.googleapis.com/maps/api/place/textsearch/json?query=terminal&location=51.47016927594547%2C-0.45432767852489075®ion=gb&key=YOUR_KEY&radius=3000
上述查询会返回一个列表,其中包含航站楼以及这些航站楼中的各个下客点。在结果列表中,我们可以找到“伦敦希思罗机场 5 号航站楼”及其地点 ID:
"place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",
使用“place_id”参数,我们可以告知 Directions API 我们要前往某个地点,而不是任意坐标。
https://maps.googleapis.com/maps/api/directions/json?origin=51.557263604707224,-0.2794575145680608&destination=place_id:ChIJtQRd6XVxdkgRTUGZtcsoGNc&key=YOUR_KEY
同样,与上一个示例一样,通过读取 JSON 响应中的所有步骤,您将找到旅程的最后一部分以及终点位置的纬度和经度坐标 (51.47079979999999,-0.4896765)。

示例 2 的摘要
与上一个示例类似,为驾驶员提供改进的指导所需投入的开发工作量非常小,而驾驶员节省的时间带来的好处很容易衡量。我们执行了以下请求:
- 用于查找希思罗机场的 Places API 请求
- 一个 Places API 请求,用于查找希思罗机场坐标附近的所有航站楼
- 用于获取前往 5 号航站楼的路线的 Directions API 请求
总结
如您所见,为驾车出行的客户提供优质服务所需的开发工作量相当小,您可以轻松展示自己是如何考虑客户需求的。
出于开发目的,您可以使用许多可用的库和工具来帮助您为客户构建服务。不妨查看我们公开提供的 Google Maps Platform GitHub 代码库。
后续操作
主要作者
Mikko Toivanen | Google Maps Platform 解决方案工程师