Android地图仅在城市内搜索

时间:2017-02-11 09:45:45

标签: android google-maps search autocomplete

我目前正在制作一款包含地图的Android应用。我已成功添加地图并可以搜索地点。根据我在网上搜索的内容,我可以设置我的城市并将我的搜索限制在我的国家/地区。

有人知道如何限制我在城市内的搜索吗?

2 个答案:

答案 0 :(得分:1)

这是一个非常棘手的解决方案,但您可以通过以下步骤来实现:

Step1 :Google地方允许您仅偏离指定LatLngBounds的搜索结果(在您的案例中为城市边界),但搜索引擎仍可能会在给定范围之外返回 Place 。有关详细信息,请参阅Restrict autocomplete results。我认为这已足够,但如果您需要严格限制,请按照步骤2进行操作。

第2步:使用 Step1 的所有搜索结果调用Places.GeoDataApi.getPlaceById以获取有关每个地方的详细信息。你会得到每个地方的LatLng。然后,您可以检查每个 Place 是否位于给定范围内:bounds.contains(LatLng)如果不是,请从搜索结果中手动删除它。

HOWEVER Step2 解决方案会使PlacesAPI上的请求数倍增,如果您真的需要这个严格的限制,您应该三思而后行!

<强>更新

截至2018年4月,Google增加了指定如何处理自动填充预测中的边界的可能性。现在,您可以使用getAutocompletePredictions()类的GeoDataClient方法和boundsMode参数。

有关详细信息,请参阅https://stackoverflow.com/a/50134855/5140781

答案 1 :(得分:0)

我找到了解决方案。 这虽然设置为我的城市。对于任何想要使用它的人,只需更改long和lat即可。 sb.append("&types=establishment&strictbounds&location=9.30684,123.305447&radius=2000");

相关问题