我正在使用setBoundsBias来限制google map autocompletePlace中的自动填充结果,但结果包含超出范围的地方。 有什么问题?
{
final int PLACE_AUTOCOMPLETE_REQUEST_CODE = 1;
AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
.setCountry("IR")
.build();
try {
Intent intent =
new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY)
.setBoundsBias(new LatLngBounds(new LatLng(38.051183, 46.211586),
new LatLng(38.132784, 46.392860)))
.setFilter(typeFilter)
.build(MainActivity.this);
startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
} catch (GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException e) {
e.fillInStackTrace();
}
}
答案 0 :(得分:4)
边界偏差不是严格的过滤器,因此无法保证不包括该区域之外的位置。目前,Places API for Android没有选项来应用严格限制。
几个月前,Places API网络服务和Maps JavaScript API的地方库中引入了应用严格边界过滤器的功能。您可以在问题跟踪器中参考此功能请求:
https://buganizer.corp.google.com/issues/35826806
但是,适用于Android的Places API和适用于iOS的Places API仍然缺少此功能。
我在Android的公共问题跟踪器中创建了一项功能请求:
https://issuetracker.google.com/issues/38188994
和iOS:
https://issuetracker.google.com/issues/38188941
请为这些功能请求添加星标,以添加您的投票并订阅Google的更新。
希望有一天他们会实现这个功能。