如何使用 Google Places Autocomplete API iOS 保存以前搜索过的结果

Posted

技术标签:

【中文标题】如何使用 Google Places Autocomplete API iOS 保存以前搜索过的结果【英文标题】:How to save previously searched results using Google Places Autocomplete API iOS 【发布时间】:2016-11-14 11:01:52 【问题描述】:

在我实施 google Places API(用于在我的地图中搜索地点)后,我想保存以前搜索(搜索和选择)的地点,并在他下次点击应用程序中的搜索栏时显示它。

喜欢前 3 次搜索(以前搜索的历史记录)。 我无法这样做,因为我使用 GMSAutocompleteResultsViewController 作为我的默认搜索结果控制器。这是我的代码。

_resultsViewController = [[GMSAutocompleteResultsViewController alloc] init];
_resultsViewController.delegate = self;

self.searchController = [[UISearchController alloc] initWithSearchResultsController:_resultsViewController];
self.searchController.searchResultsUpdater = _resultsViewController;

根据 Google Places API 文档:https://developers.google.com/places/ios-api/autocomplete 如何用之前搜索的结果更新tableview(resultsViewController)

【问题讨论】:

尝试阅读整个文档。 :) 【参考方案1】:
- (void)viewController:(GMSAutocompleteViewController *)viewController
didAutocompleteWithPlace:(GMSPlace *)place 
  [self dismissViewControllerAnimated:YES completion:nil];
  // Do something with the selected place.
  NSLog(@"Place name %@", place.name);
  NSLog(@"Place address %@", place.formattedAddress);
  NSLog(@"Place attributions %@", place.attributions.string);

使用此委托方法,您将获得选定的搜索地点并将此地点名称保存到您的数据库、squilite 或您想要的任何最佳位置。并使用您的数据库更新您的表格。

【讨论】:

【参考方案2】:

具有用户可以选择最后选择的地点的功能。如果您可以使用数据库或将其保存在 NSUserDefaults 中,那就太好了。并在您的 tableview 中添加一个检查以获取用户默认值,如果发现将其附加到数组的索引 0。

【讨论】:

以上是关于如何使用 Google Places Autocomplete API iOS 保存以前搜索过的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CORS 实现 JavaScript Google Places API 请求

如何使用 Google 地图搜索我自己的位置数据(与 Places 搜索 API 的功能相同,但用于我自己的“地点”)

如何从 Google Places API 获取地点描述

如何从 google.maps.places.Autocomplete 获得超过 5 个结果?

Google Places Autocomplete - 如何获取纬度和经度?

如何使用 Google Places Javascript API 搜索附近(自动从浏览器获取坐标)?