【发布时间】:2017-12-11 02:42:11
【问题描述】:
目前,我正在开发一个餐厅应用程序,人们可以在该应用程序中拍照并将其标记到 Google Place。但是,由于我的应用程序针对的是印度等发展中国家,因此 Google 地方信息的定义并不十分明确。所以我允许用户搜索他们认为更准确地反映了他们最喜欢的餐厅的位置的地方。
我使用Google Places API for android 的PlaceAutocompleteFragment 片段作为输入机制,供用户搜索他们最喜欢的关节。但是,为了让他们更容易选择,我想将结果偏向特定区域 - 更具体地说是他们执行搜索的城市。
但是,如何获取用户当前位置的城市?我可以得到纬度,经度。但是如何检索某个纬度和经度对应的城市呢?
我是否需要从 lat、long 对地址进行反向地理编码才能获得地址?但如果我这样做,那么我如何可靠地获得城市名称?此后,在 PlaceAutocompleteFragment 中设置“城市”过滤器的正确规定是什么?
那么最简单的方法是什么?有任何想法吗?欣赏它。
【问题讨论】:
-
我不确定您的问题是什么。
setBoundsBias()将LatLngBounds作为参数;为什么需要城市名称? -
@HEATH3N 因为不同的城市有同名的餐厅。此外,不同的城市可能有不同的规模。所以例如一个大都市可能有40-50公里的半径,一个小城市可能只有10-20公里。相邻城市可能有几个地方共享共同的地区名称
-
嗯,我想你还是想显示一个匹配列表,不是吗?如果用户要搜索像麦当劳这样的普通连锁餐厅,一个城市可能有 10 家(或者可能只是美国:/)。您可以让他们选择他们认为的位置(在地图上显示与用户的距离的所有位置),或者如果要求他们在该位置,只需将半径限制在一个很小的距离并选择第一个结果。我会继续寻找; Mapbox 或 OSM 可能有一种方法。
-
是的,完全正确。你有我的问题。现在想象一下,如果我设置一个 50 公里半径的界限,选项的数量可能会更多,使体验变得更糟......所以,我的思考过程是,通常人们会非常熟悉他们所在城市的选项,所以如果可能的话,只要限制城市的半径......
-
啊哈!您可以使用Mapzen API;见
bbox结果。您可以使用它在 Google 地图中生成LatLngBounds并将其传递给setBoundsBias()。 Mapbox 也有这个功能;明天有时间我会试着举个例子。
标签: android google-places-api placeautocompletefragment