应用中可用的 Places SDK for iOS 功能取决于您在软件包依赖项中指定的 SDK 版本号(例如 9.0.0)以及您的 API 密钥上启用的 API。本指南介绍了各个版本之间的区别,以及如何选择要在应用中启用哪些版本。
SDK 版本号
您在软件包依赖项中指定的 SDK 的版本号决定了您的应用是否有权使用特定版本中添加的功能。例如,“自动补全(新)”仅适用于 SDK 9.0.0 或更高版本。
如需详细了解每个 SDK 版本中引入的变更,请参阅 Places SDK for iOS 版本说明。
Places SDK for iOS 的 Places API 版本
除了指定 SDK 版本号之外,您还必须在 Google Cloud 控制台中选择 SDK 在其中调用的 Google 地图 API 服务:Google 地图 API 或 Google 地图 API(新版)。您选择的 API 服务与 SDK 版本号一起决定了您的应用中可用的特定功能(例如“自动补全”或“自动补全 [新]”)的版本。虽然您只能指定一个 SDK 版本号,但可以在 API 密钥上同时启用 Google 地图 API 和 Google 地图 API(新版)。不过,在大多数情况下,您需要启用 Places API(新版),并在应用中使用 SDK 功能的(新版)。
选择您的 SDK 版本和 API 服务
如需选择应用中可用的 SDK 功能,请执行以下操作:
- 在您的 Google Cloud 项目中,启用 Places API 和/或 Places API(新)。如需了解详情,请参阅启用 API
- 在 API 密钥限制中,启用 Google 地图 API、Google 地图 API(新版)或二者兼有。如需了解详情,请参阅限制 API 密钥。
- 安装 SDK 时,请指定版本号。如需了解详情,请参阅设置 Xcode 项目。
如需详细了解如何选择 Places API 服务,请参阅设置 Google Cloud 项目。
每个版本中提供的 SDK 功能
下表显示了每个 SDK 功能所需的 SDK 和 API 版本:
Places SDK for iOS(新) | 最低 SDK 版本 | Places SDK for iOS | 最低 SDK 版本 |
---|---|---|---|
地点详情(新) | 9.0.0 | 地点详情 | 3.0.0 |
地点照片(新) | 9.0.0 | 地点照片 | 3.0.0 |
文字形式的搜索广告(新) | 8.5.0 | ||
附近搜索(新) | 9.0.0 | ||
自动补全(新) | 9.0.0 | 自动补全 | 3.0.0 |
当前地点 | 3.0.0 |
选择要启用哪些版本的注意事项
- 如果您是刚开始使用 Places SDK for iOS 的新客户,请先使用 Places API(新版)和新版 SDK。
- 如果您是现有客户,则可以继续使用现有 SDK。不过,如需利用 Places SDK for iOS(新版)的性能改进和功能增强,您应启用 Places API(新版)并使用新版 SDK。迁移到新 SDK 时无需进行任何迁移,只需按照选择 SDK 版本和 API 服务中的步骤操作即可。
- 地点 API(新版)不支持某些现有功能,例如当前地点、
GMSPlace.isOpen
和GMSPlace.isOpenAtDate
。
使用适用于 iOS 的 Places Swift SDK(预览版)
如需使用适用于 iOS 的 Places Swift SDK(预览版),请按以下步骤操作:
- 启用 Places API(新)。
- 将 Places Swift SDK for iOS(预览版)添加到您的依赖项中。
- 使用
PlacesClient
初始化 Places 客户端。
如需详细了解 Places Swift SDK for iOS(预览版),请参阅概览或迁移指南。
迁移到新 API
如果您使用的是现有 API,并希望迁移到新 API,请参阅以下针对各个 API 的迁移指南:
Places SDK for iOS 中的增强功能(新)
本部分介绍了添加到 Places SDK for iOS(新)的主要功能。
在 Google Cloud 标准平台上实现
Places SDK for iOS(新)在 Google Cloud 上的服务基础架构上实现。这种实现带来了更安全、更可信的平台。这种标准设计可在各个 SDK 之间实现一定程度的一致性,从而提高使用 Places SDK for iOS(新版)进行开发的效率。
性能改进
Places SDK for iOS(新版)的性能得到了提升,因此值得替换使用现有 SDK 的应用。
新功能
Places SDK for iOS(新版)包含所有 SDK 功能的最新版本:
简化的价格方案
借助 Places SDK for iOS(新版),价格更加简单明了,您只需按实际使用的流量付费。简化版价格是使用字段列表(也称为字段掩码)实现的。
借助 Places SDK for iOS 和文本搜索,您可以使用字段列表来控制要在响应中返回的字段列表。这样,您只需为所请求的数据付费。使用字段列表是一种良好的设计实践,可确保您不会请求不必要的数据,从而避免不必要的处理时间和结算费用。
如需详细了解这两款 SDK 的价格信息,请参阅使用和结算。
扩展的地点类型
新版 SDK 添加了下表中所示的地点类型。这些类型会作为地点详情和文本搜索响应的一部分返回。您还可以在文本搜索中使用这些新类型和现有类型进行搜索。表格 A中列出了新类型。
类型 | |||
---|---|---|---|
american_restaurant | discount_store | ice_cream_shop | sandwich_shop |
amusement_center | dog_park | indian_restaurant | school_district |
athletic_field | electric_vehicle_charging_station | indonesian_restaurant | seafood_restaurant |
auto_parts_store | event_venue | italian_restaurant | ski_resort |
banquet_hall | extended_stay_hotel | japanese_restaurant | spanish_restaurant |
barbecue_restaurant | 农场 | korean_restaurant | sporting_goods_store |
barber_shop | 农庄 | lebanese_restaurant | sports_club |
bed_and_breakfast | fast_food_restaurant | Marina | sports_complex |
brazilian_restaurant | ferry_terminal | 市场 | steak_house |
breakfast_restaurant | fitness_center | medical_lab | sushi_restaurant |
brunch_restaurant | french_restaurant | mediterranean_restaurant | swimming_pool |
bus_stop | gift_shop | mexican_restaurant | 裁缝 |
camping_cabin | golf_course | middle_eastern_restaurant | telecommunications_service_provider |
cell_phone_store | greek_restaurant | 汽车旅店 | thai_restaurant |
child_care_agency | grocery_store | national_park | transit_depot |
chinese_restaurant | guest_house | park_and_ride | truck_stop |
coffee_shop | hair_salon | performing_arts_theater | turkish_restaurant |
community_center | hamburger_restaurant | pizza_restaurant | vegan_restaurant |
顾问 | 直升机场 | 游乐场 | vegetarian_restaurant |
convention_center | hiking_area | 学前班 | vietnamese_restaurant |
小屋 | historical_landmark | private_guest_room | visitor_center |
courier_service | home_improvement_store | ramen_restaurant | wedding_venue |
cultural_center | 招待所 | resort_hotel | 批发商 |
dental_clinic | hotel | rest_stop |
除了这些新类型之外,Places API(新版)还将以下类型从 Places API 的 Table 2 移到了 Places API(新版)的 Table A。这意味着,您现在可以在搜索中使用以下类型:
country
administrative_area_level_1
administrative_area_level_2
postal_code
locality