在驾车前往营业地点时打造最佳用户体验的技巧

通常,当用户要前往地图注点 (POI) 时,他们实际上需要导航到附近的位置,如停车场或接入点。想象一位司机需要去机场或购物中心。在前往机场时,司机试图到达航站楼或下车点,而不是机场大厅的中心。同样,对于有汽车的用户来说,购物中心旁边的停车场可能是一个更好的选择。在这种情况下,在开发用于引导驾驶员的应用或服务时,首先要找到他们将要前往的地点,然后为驾驶员提供该位置附近的可选目的地。利用 Google Maps Platform 提供的位置数据,您只需进行少量智能开发,即可向客户提供更好的服务,并证明您重视他们的时间。

[System Context] 高级导航系统
引导驾驶员开车前往特定地点时所涉及的系统的简化视图
概要系统图

我们将向您展示如何按顺序或组合使用 Places API 和 Directions API,以确定目的地旁边的正确停车位置。此解决方案旨在消除不确定性和多重互动,以便在靠近终点目的地时找到一个停车点。下面我们来看两个示例,了解如何详细实现这两种情况。

示例 1 - 没有停车场的旅游景点

我们选择一个没有直接连接到路边的位置,这样就必须单独检索路线。目的地是巴黎的巴黎圣母院,作为起点,我们使用巴黎东部火车站(48.87697775149635,2.359224780475556)。

巴黎东部火车站

司机从巴黎圣母院以北约 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&region=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&region=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

Direction API 响应通常包含多个路线建议。每条路线都由多段“路程”组成,这些路程包含多个“路段”,显示行程距离和坐标。要查找汽车可到达的最终坐标,请使用您所选路线中最后一路段的“end_location”字段。

这个地方看上去可能不是第一个选择,但当您查看地图或 Google 街景时,会发现这个地方离巴黎圣母院只有很短的步行距离,大约 6-7 分钟。

从停车场到巴黎圣母院的步行路线

从停车区到巴黎圣母院的步行路线

示例 1 的摘要

如您所见,查找汽车停车区只需进行几次 API 调用,并向驾驶员显示建议即可。这可以为您的用户节省时间,因为他们不用在单行道上行驶,也不要在人多的旅游景点找一个留车的地方。总结一下,我们发出了以下 API 请求:

  • 用于查找巴黎圣母院坐标的 Places API 请求
  • Places API 请求,用于在这些坐标的 300 米范围内查找停车区
  • 用于查找前往停车区路线的 Directions API 请求

示例 2 - 引导前往大型机场中的航站楼

地图上的希思罗机场
我们来看另一个示例,其中驾驶员尝试到达具有多个营业地点、地图注点或可能的下车点的大片区域。司机正在从英国温布利球场 (51.557263604707224, -0.2794575145680608) 出发,正尝试前往伦敦希思罗机场 5 号航站楼。通常,用户会开始输入“Heathrow”,并且大多数时候,如果结果看上去正确,用户会从前两到三个结果中选择一个。从所选结果中,您可以阅读“types”字段值,了解该地点是一个机场。您可以在此处找到完整的类型列表。

  "types" : [ "airport", "point_of_interest", "establishment" ],

然而,去过任何大型机场的人都知道,如果您恰好到达错误的位置,在航站楼之间换乘将花费大量时间。在本例中,由于搜索结果的类型为“机场”,因此自动跟进查询以使用伦敦希思罗机场的位置(51.47016927594547、-0.45432767852489075)搜索“航站楼”非常有用。在示例中,您还可以选择将搜索半径限制为 3000 米。

  https://maps.googleapis.com/maps/api/place/textsearch/json?query=terminal&location=51.47016927594547%2C-0.45432767852489075&region=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)。

希思罗机场 5 号航站楼

示例 2 的摘要

与上一个示例一样,为驾驶员提供改进指导的开发工作非常少,而且可以轻松衡量为驾驶员节省的时间。我们提出了以下要求:

  • 用于查找希思罗机场的 Places API 请求
  • Places API 请求,用于查找希思罗机场坐标附近的所有航站楼
  • 获取前往第 5 航站楼的路线的 Directions API 请求

总结

如您所见,为乘车出行的客户提供优质服务所需的开发工作非常少,而且您可以轻松展示自己是如何看待客户需求的。

出于开发目的,您可以使用许多可用的库和工具来帮助为客户构建服务。查看我们公开发布的 Google Maps Platform GitHub 代码库

后续操作

主编

Mikko Toivanen | Google Maps Platform 解决方案工程师