gpt4 book ai didi

iOS:如何从 CoreLocation 坐标设置 GMSCoordinateBounds?

转载 作者:可可西里 更新时间:2023-11-01 05:03:09 28 4
gpt4 key购买 nike

我正在构建的应用程序要求我询问用户他的位置,自动完成,并确保他确实在附近。所以我的想法是使用 Google Places Autocomplete,并在 UITableView 中返回结果。

为了确保用户在他输入的位置附近,我想将 GMSCoordinatesBound 设置为用户当前位置周围的特定半径。我知道如何通过 CoreLocation 获取用户的位置,但是我不确定如何将这些坐标转换为我可以在 Google Places autocompleteQuery 中使用的 GMSCoordinateBounds 对象。谁能给我一个提示?

谢谢!

最佳答案

您现在可以限制 Google Autocomplete ViewController 搜索的范围。看这里:https://developers.google.com/places/ios-api/autocomplete#set_the_gmscoordinatebounds_of_autocomplete

具体来说,您可以使用 CLLocationManager 获取纬度和经度。然后添加偏移量以获得 map 区域的边界区域。

您可以在 View 中没有 map 的情况下执行此操作。例如,对于向字段添加地址的情况。

使用https://developers.google.com/places/ios-api/autocomplete#add_a_full-screen_control设置全屏搜索。但是在激活搜索自动完成的 IBAction 中添加 (Swift 2) 这段代码:

let manager = CLLocationManager()
manager.startUpdatingLocation()
let lat = manager.location!.coordinate.latitude
let long = manager.location!.coordinate.longitude
let offset = 200.0 / 1000.0;
let latMax = lat + offset;
let latMin = lat - offset;
let lngOffset = offset * cos(lat * M_PI / 200.0);
let lngMax = long + lngOffset;
let lngMin = long - lngOffset;
let initialLocation = CLLocationCoordinate2D(latitude: latMax, longitude: lngMax)
let otherLocation = CLLocationCoordinate2D(latitude: latMin, longitude: lngMin)
let bounds = GMSCoordinateBounds(coordinate: initialLocation, coordinate: otherLocation)

let autocompleteController = GMSAutocompleteViewController()

autocompleteController.autocompleteBounds = bounds
autocompleteController.delegate = self
self.presentViewController(autocompleteController, animated: true, completion: nil)

我在 Google 文档和这篇文章的帮助下解决了这个问题: Moving a CLLocation by x meters

调整每个帖子的参数以更改边界区域。现在我得到本地搜索结果,而不是默认的纽约及其他地区。

这假设您已正确设置适用于 iOS 的 Google Places API。并且,您安装了 Google iOS API key (在 AppDelegate 中),安装了 Google 客户端,并且在您的 ViewController 中安装了 AutoCompleteViewControllerDelegate 扩展。

关于iOS:如何从 CoreLocation 坐标设置 GMSCoordinateBounds?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32228091/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com