【问题标题】:Search for places around current location of the user - PlaceAutocompleteFragment搜索用户当前位置周围的地方 - PlaceAutocompleteFragment
【发布时间】:2017-06-16 14:19:35
【问题描述】:

我需要做的是实现一个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 对象?

我的意思是,我想根据用户的当前位置动态地获取该值。

【问题讨论】:

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


    【解决方案1】:

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

    最后,请注意,边界不是对结果的严格限制,它只是将结果偏向到边界。

    或者您是在问如何找出设备所在的世界上任意城市/地区的最佳界限?如果是这样,那么您可以执行以下操作

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

    【讨论】:

    • 我只想在地点自动完成片段中应用一种过滤器,以仅显示用户当前位置周围的地点预测。通过应用 TYPE_COUNTRY 过滤器,它显示了全国各地的地点,这些条目对用户没有用处,因为他们只想寻找附近的地方。
    • 在这种情况下,我回答中的第一个建议应该可以满足您的需求。
    • 是的,你是对的,我会这样做,并在我完成后在几天内告诉你结果。
    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多