我正在构建的应用程序需要我询问用户他的位置,自动完成功能,并确保他确实在附近。所以我的想法是使用Google Places Autocomplete,然后将结果返回到UITableView中。
为了确保用户在他输入的位置附近,我想将GMSCoordinatesBound设置为用户当前位置周围的某个半径。我知道如何通过CoreLocation获取用户的位置,但是我不确定如何将这些坐标转换为可以在Google Places autocompleteQuery中使用的GMSCoordinateBounds对象。有人可以给我提示吗?
谢谢!
最佳答案
首先,对可能发生的情况进行一些说明:
bounds
将强烈偏向结果在该区域内或附近,但这不是硬性限制。即使位置在新西兰,用户仍然可以键入法郎的艾菲尔铁塔并选择法国巴黎的艾菲尔铁塔。 您可以将坐标偏移固定的距离,以制作东北和西南角的新坐标,例如通过使用https://stackoverflow.com/a/7278293/806600(答案为“按x米移动CLLocation”)。
然后,您可以使用以下代码从
GMSCoordinateBounds
构造一个CLLocationCoordinate2D
:GMSCoordinateBounds *bounds =
[[GMSCoordinateBounds alloc] initWithCoordinate:northEast
coordinate:southWest];
然后将其传递给
autocompleteQuery
。