概览
Google Maps Platform 适用于 Web(JS、TS)、Android 和 iOS,还提供用于获取地点、路线和距离相关信息的网络服务 API。本指南中的示例仅基于其中一种平台,如需在其他平台上实现增强型交易,请参阅提供的文档链接。
交易语句对用户而言通常很难理解,使用“ACMEHCORP”等缩写(而非“Acme Houseware”这样的商家名称)可能会导致客户服务电话增加,还可能引发代价高昂的争议。增强型交易可提供商家的全称和业务类别、店面照片、商家地址及在地图上的位置、完整的联系信息等等,从而简化并直观呈现这些交易语句。这不仅有助于提高用户满意度和透明度,还可减少客户服务电话、提高净推荐值,以及吸引用户在应用内停留更长时间。
在本主题中,我们介绍了增强型交易实现指南和自定义设置提示,建议利用 Google Maps Platform API 的最优组合,打造出色的交易记录用户体验。本实现指南将向您介绍如何将营业地点与特定商家进行匹配,以及如何显示商家的详细信息。
启用 API
若要实现增强型交易,您必须在 Google Cloud 控制台中启用以下 API。您可以通过以下超链接前往 Google Cloud 控制台,为您选择的项目启用各个 API:
如需详细了解设置方法,请参阅 Google Maps Platform 使用入门。实现指南的各个部分
以下是本主题涵盖的实现方法和自定义设置。
- 对勾标记图标表示核心实现步骤。
- 星形图标表示可选但建议采用的自定义设置,可以强化解决方案。
使用 Google Maps Platform 匹配商家 | 将交易记录中的商家与 Google Maps Platform 中的地点相关联。 | |
显示商家详情 | 显示包含丰富数据的交易,其中会提供商家的相关实用信息,以便用户快速识别交易。 | |
添加商家营业地点地图 | 添加商家营业地点地图。 |
使用 Google Maps Platform 匹配商家
此示例使用:Places API |
下图展示了您的应用如何使用现有商家数据库中的地点详情或通过“地点搜索”请求对商家交易进行匹配,从而返回相关结果:
获取 Google Maps Platform 地点 ID
您可能会有一个包含商家名称和商家地址等基本信息的商家数据库。若要从 Google Maps Platform 中获取此地点的相关信息(包括联系信息和用户贡献的信息),您需要使用与数据库中的每个商家相对应的 Google Maps Platform 地点 ID。
若要获取商家所对应的地点 ID,请在 Places API 中向 /findplacefromtext 端点发出请求,并仅请求 place_id
字段,以便将该请求作为免费的查找地点 - 仅返回 ID 调用进行计费。如果商家有多个营业地点,请将商家名称与城市或街道名称搭配使用。调用返回的数据质量会有所不同,因此您需要验证返回的结果是否确实与所需商家相匹配。
以下示例展示了如何使用商家名称和城市请求 Google 台北办事处的地点 ID:
https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=google%20taipei&inputtype=textquery&fields=place_id&key=YOUR_API_KEY&solution_channel=GMP_guides_enrichedtransactions_v1_a
请务必对 API 请求中的输入参数进行网址编码。
存储地点 ID
若要存储 Google Maps Platform 中的商家相关信息以用于将来的请求,您可以在数据库中无限期存储此地点 ID,将其作为商家记录的一种属性。您应该只需对每个商家执行一次“查找地点”请求。您也可以在每次用户请求交易详情时搜索地点 ID。
为确保您始终获得最准确的信息,请使用包含 place_id
参数的地点详情请求,每 12 个月刷新一次地点 ID。
如果您显示的地点详情与发生交易的商家不匹配,建议您允许用户就商家匹配质量提供反馈。
显示商家详情
此示例使用:Places API | 同样适用于:Places SDK for Android | Places SDK for iOS | Maps JavaScript API 地点库 |
在用户前往您的某个营业地点之后,您可以分享用户需要了解的地点详情。有了丰富的地点详情(例如联系信息、营业时间、用户评分和用户照片),您的应用就可以针对用户已完成的交易向他们发出提醒。调用 Places API 以获取地点详情后,您可以通过信息窗口、网页边栏或其他您喜欢的方式过滤并呈现响应结果。
如需查询地点详情,您需要每个营业地点的地点 ID。请参阅获取地点 ID 来检索营业地点的地点 ID。
以下“地点详情”请求会针对 Google 台北 101 地点 ID 在 json
输出中返回地址、坐标、网站、电话号码、评分和营业时间:
https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJraeA2rarQjQRyAqIxkx2vN8&fields=name%2Cformatted_address%2Cwebsite%2Cformatted_phone_number%2Cgeometry/location%2Cicon%2Copening_hours%2Crating&key=YOUR_API_KEY&solution_channel=GMP_guides_enrichedtransactions_v1_a
添加商家营业地点地图
此示例使用的是:Geocoding API | Maps Static API | 同样适用于:Android | iOS |
确定商家营业地点
Maps Static API 接受在地址或坐标上放置标记。如果您的商家记录中已有地址,则可以跳到下一部分,但我们建议您使用坐标而非地址,以确保地图精确度。
如果您的商家数据库中包含街道地址但没有地理坐标,并且您尚未请求地点详情,则可以在服务器端使用 Geocoding API 将街道地址转换为纬度/经度坐标,然后将坐标存储在数据库中,并且至少每 30 天刷新一次坐标。
下例展示了如何使用 Geocoding API 获取 Google 台北办事处地点 ID 的经纬度:
https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJraeA2rarQjQRyAqIxkx2vN8&key=YOUR_API_KEY&solution_channel=GMP_guides_enrichedtransactions_v1_a
在地图上为商家营业地点添加标记
由于用户会查看地图来确认交易,而不是浏览或导航,因此您需要创建具有一定互动性的地图。
对于桌面版网站和移动网站,请创建 Maps Static API 网址并将一个标记放置在商家的纬度/经度坐标或地址处。您可以通过网络服务调用来使用 Maps Static API,该调用将根据您指定的参数创建地图的图片版本。对于移动设备,请跳至下一部分“在移动应用中添加地图”。
下方的调用显示了一个路线图,该图尺寸为 640x480 像素,以放置在 Google 台北办事处的标记为中心,并且采用默认缩放级别。该图还指定了一个红色的送货地点标记和一个云端地图样式:
https://maps.googleapis.com/maps/api/staticmap?size=640x480&markers=color:red%7C25.033976%2C121.5645389&map_id=b224095f76859890&key=YOUR_API_KEY&signature=BASE64_SIGNATURE&solution_channel=GMP_guides_enrichedtransactions_v1_a
它可分为以下几部分:
API 网址 | https://maps.googleapis.com/maps/api/staticmap? |
图片尺寸 | size=640x480 |
商家营业地点标记(使用网址编码) | markers=color:red%7C25.033976%2C121.5645389 |
云端地图样式 | map_id=b224095f76859890 |
API 密钥 | key=YOUR_API_KEY |
数字签名(了解如何对请求进行数字签名) | signature=BASE64_SIGNATURE |
解决方案渠道参数(请参阅参数文档) | solution_channel=GMP_guides_enrichedtransactions_v1_a |
上述代码会生成如下所示的图片:
您也可以使用地址作为标记位置:
https://maps.googleapis.com/maps/api/staticmap?size=640x480&markers=color:green%7CTaipei%20101%20Tower%2CNo.%207信義路五段信義區台北市%20Taiwan%20110&map_id=b224095f76859890&key=YOUR_API_KEY&signature=BASE64_SIGNATURE&solution_channel=GMP_guides_enrichedtransactions_v1_a
如需了解其他参数选项,请参阅 Maps Static API 文档。
在移动应用中添加地图
如果您使用的是 Maps SDK for Android 或 Maps SDK for iOS,则可以根据地点详情信息中的坐标来放置标记。
由于用户会查看地图来确认交易,而不是浏览或导航,因此请选择具有一定互动性的地图。