本指南重点介绍了旧版地点服务与新版地点类之间的主要区别。升级到酒店类会带来显著优势,包括提升了性能和采用了新的定价模式。为了充分利用地点,并确保您的应用是最新版本,请熟悉本指南中详述的变更。
迁移的结算最佳实践
如果您的 API 用量足够高,达到了第二层级的价格,则适用此指南。迁移到较新版本的 API 时,您还需要按其他 SKU 付费。为避免在过渡月份增加费用,我们建议您尽可能在月初切换到正式版中的新 API。这样可以确保您在迁移月份达到最具成本效益的每月价格层级。如需了解价格层级,请参阅价格页面和价格常见问题解答。
启用 Places API
Place 类依赖于 Places API 服务。如需使用新版地点类的功能,您必须先在 Google Cloud 项目中启用 Places API(新)。如需了解详情,请参阅使用入门。
大致变化
下表列出了 PlacesService
和 Place
之间的一些主要区别:
PlacesService (旧版) |
Place (新) |
---|---|
方法需要使用回调来处理结果对象和 google.maps.places.PlacesServiceStatus 响应。 |
使用 Promise,并以异步方式运行。 |
方法需要进行 PlacesServiceStatus 检查。 |
无需状态检查,可以使用标准错误处理。 |
地点数据字段采用蛇形命名法。 | 地点数据字段采用驼峰式格式。 |
仅限于一组固定的地点类型和地点数据字段。 | 提供定期更新的地点类型和地点数据字段的更广泛选择。 |
特定于 API 的更改
Place 类提供了一个 API,用于使用地点库,还支持 promise 等新型使用模式。Place 类公开与旧版地点服务相同的地点数据字段和地点类型,并包含许多地点数据字段和地点类型的新值。
下表显示了地点服务的功能如何映射到地点类的功能:
加载地点库
应用加载 Places 库的方式取决于所使用的引导加载器。如果您的应用使用动态库导入,您可以使用 await
运算符调用 importLibrary()
,以便在运行时加载所需的库,如下所示:
const { Place } = await google.maps.importLibrary("places");
如果您的应用使用直接脚本加载标记,请在加载器脚本中请求 places
库:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>
本部分包含以下指南,可帮助您迁移应用以使用最新版本的 Places API: