搜索用户当前位置周围的地点 - PlaceAutocompleteFragment

时间:2017-06-14 16:48:59

标签: google-maps autocomplete google-places-api

我需要做的是实现PlaceAutocompleteFragment视图以查找用户当前位置周围的位置。

我正在查看官方文档,但找不到合适的方法。

我设置了Place.TYPE_COUNTRY过滤器,但它显示了全国各地的预测,并且在输入时显示的大部分结果与用户无关。

   AutocompleteFilter filter = new AutocompleteFilter.Builder()
            .setTypeFilter(Place.TYPE_COUNTRY)
            .setCountry(country)
            .build();

PlaceAutocompleteFragment.setBoundsBias(LatLngBounds)方法提供了一种将结果限制到特定区域的方法。

autocompleteFragment.setBoundsBias(new LatLngBounds(
        new LatLng(-33.880490, 151.184363),
        new LatLng(-33.858754, 151.229596)));

根据文件,上述代码将结果限制在澳大利亚悉尼的特定地区。我认为这与我想要的相似。

所以问题是,有没有办法让LatLng值以编程方式实例化LatLngBounds对象?

我的意思是,我希望根据用户的当前位置来获取这些值。

1 个答案:

答案 0 :(得分:1)

您只需要设备的位置吗?如果有,请参阅Making Your App Location-Aware。然后,您可以将其扩展为边界矩形(一种方法是使用SphericalUtil.computeOffset()库中的android-maps-utils

最后,请注意,边界不是对结果的严格限制,只有偏见结果才能生成边界。

或者您是否在询问如何找出设备所在世界中任意城市/地区的优势?如果是这样,那么你可以做以下

  1. 使用Google Geocoding API在设备的位置执行反向地理编码查找。
  2. 检查结果并在地方级别选择结果?
  3. 使用该结果的viewport作为界限。