0

目前,我正在开发一个餐厅应用程序,人们可以在其中拍照并将其标记到 Google Place。但是,由于我的应用程序针对的是印度等发展中国家,因此 Google Places 的定义并不十分明确。所以我允许用户搜索他们认为更准确地反映了他们最喜欢的餐厅位置的地方。我正在使用适用于 androidPlaceAutocompleteFragment的 Google Places API 片段作为用户搜索他们最喜欢的关节的输入机制。但是,为了让他们更容易选择,我想将结果偏向特定区域 - 更具体地说是他们执行搜索的城市。

但是,如何获取用户当前位置的城市?我可以得到纬度,经度。但是如何检索与某个纬度和经度对应的城市?

我是否需要从 lat、long 对地址进行反向地理编码才能获得地址?但如果我这样做,那么我如何可靠地获得城市名称?此后,在 PlaceAutocompleteFragment 中设置“城市”过滤器的正确规定是什么?

那么最简单的方法是什么?有任何想法吗?欣赏它。

4

2 回答 2

4
autocompleteFragment.setBoundsBias(new LatLngBounds(southwestLatLng, northeastLatLng));

setBoundsBias()接受 a LatLngBounds,它由两个LatLng对象组成,代表边界矩形的西南点和东北点。Google API 似乎没有提供获取城市边界的方法,因此您必须弄清楚在用户当前的纬度和经度中搜索和减去/添加的可接受半径是多少,以得出两个点边界矩形。请参阅:在 Java 中计算距纬度/经度坐标一定距离的边界框

于 2017-12-10T18:42:11.127 回答
1

获得address表格后Geocoder,您可以从地址本身获得城市名称。希望下面的代码对您有所帮助

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
 List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1);
 String cityName = addresses.get(0).getAddressLine(0);
 String stateName = addresses.get(0).getAddressLine(1);
 String countryName = addresses.get(0).getAddressLine(2);

有关详细的谷歌地图示例,请查看以下链接:http: //www.demoadda.com/demo/android/load-googlemap_107

于 2017-12-10T18:00:06.463 回答