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

本文档的新版本提供了 有关如何使用新的 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&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

Directions API 响应通常包含多个路线建议。每条路线都包含多个“路段”,而这些路段又包含多个“步骤”,显示了行驶距离和坐标。如需查找驾车可到达的最终坐标,请使用所选路线中最后一个路段的最后一个步骤的“end_location”字段。

此地点可能看起来不是首选,但当您查看地图或 Google 街景时,会发现此地点距离巴黎圣母院很近,步行大约 6-7 分钟即可到达。

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

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

示例 1 总结

如您所见,查找停车位只需进行几个 API 调用,并向司机显示建议。这样可以节省用户的时间,因为他们不必在单行道上行驶,也不必在拥挤的旅游景点中寻找停车位。总结一下,我们发出了以下 API 请求:

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

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

地图上的希思罗机场
让我们考虑另一个示例,其中司机试图到达一个大型区域 ,该区域包含多个地点、POI 或潜在下客点。司机从英国温布利球场 (51.557263604707224, -0.2794575145680608) 出发,试图到达伦敦希思罗机场 5 号航站楼 。通常,用户会开始输入“Heathrow”,如果前 2 或 3 条结果看起来是正确的结果,大多数人会选择其中一条。从所选结果中,您可以通过读取“types”字段值来了解该地点是机场。您可以在此处找到完整的类型列表 here

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

不过,去过任何大型机场的人都知道,如果您恰好到达错误的地点,在航站楼之间换乘需要花费大量时间。在这种情况下,由于搜索结果的类型为“airport”,因此使用伦敦希思罗机场的位置 (51.47016927594547, -0.45432767852489075) 自动执行后续查询以搜索“terminal”非常有用。在示例中,您还可以看到搜索半径为 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

上述查询会给出航站楼列表以及这些航站楼中的各个下客点。从结果列表中,我们可以找到“London Heathrow Airport Terminal 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 请求,用于查找靠近希思罗机场坐标的所有航站楼
  • 一个 Directions API 请求,用于获取前往 5 号航站楼的路线

总结

如您所见,为驾车出行的客户提供优质服务所需的开发工作量相当小,并且您可以轻松展示您是如何考虑客户需求的。

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

后续操作

主要作者

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