- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用适用于 Android 的 Places.GeoDataApi,根据执行请求的设备的位置,我会得到不同的搜索结果。我需要结果始终位于边界内。我不知道在 getAutocompletePredictions 请求中可以在哪里设置。我有什么遗漏的吗?
我通过以下方式使用 GoogleApiClient 和 Places API 获取地址/地点自动填充建议:
Places.GeoDataApi.getAutocompletePredictions()
该方法需要一个 GoogleApiClient 对象、一个用于自动完成的字符串以及一个用于限制搜索范围的 LatLngBounds 对象。这就是我的用法:
LatLngBounds bounds = new LatLngBounds(new LatLng(38.46572222050097, -107.75668023304138),new LatLng(39.913037779499035, -105.88929176695862));
GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.build();
PendingResult<AutocompletePredictionBuffer> results =
Places.GeoDataApi.getAutocompletePredictions(googleApiClient, "Starbucks", bounds, null);
使用的版本:com.google.android.gms:play-services-location:8.3.0
文档: https://developers.google.com/places/android/autocomplete
最佳答案
好消息。自 2018 年 4 月起,Google 增加了指定如何处理自动完成预测中的边界的可能性。现在您可以使用getAutocompletePredictions()
方法GeoDataClient
与 boundsMode
一起上课参数
public Task<AutocompletePredictionBufferResponse> getAutocompletePredictions (String query, LatLngBounds bounds, int boundsMode, AutocompleteFilter filter)
boundsMode - How to treat the bounds parameter. When set to STRICT predictions are contained by the supplied bounds. If set to BIAS predictions are biased towards the supplied bounds. If bounds is null then this parameter has no effect.
来源:https://developers.google.com/android/reference/com/google/android/gms/location/places/GeoDataClient
您可以将代码修改为类似以下内容:
LatLngBounds bounds = new LatLngBounds(new LatLng(38.46572222050097, -107.75668023304138),new LatLng(39.913037779499035, -105.88929176695862));
GeoDataClient mGeoDataClient = Places.getGeoDataClient(getBaseContext());;
Task<AutocompletePredictionBufferResponse> results =
mGeoDataClient.getAutocompletePredictions("Starbucks", bounds, GeoDataClient.BoundsMode.STRICT, null);
try {
Tasks.await(results, 60, TimeUnit.SECONDS);
} catch (ExecutionException | InterruptedException | TimeoutException e) {
e.printStackTrace();
}
try {
AutocompletePredictionBufferResponse autocompletePredictions = results.getResult();
Log.i(TAG, "Query completed. Received " + autocompletePredictions.getCount()
+ " predictions.");
// Freeze the results immutable representation that can be stored safely.
ArrayList<AutocompletePrediction> al = DataBufferUtils.freezeAndClose(autocompletePredictions);
for (AutocompletePrediction p : al) {
CharSequence cs = p.getFullText(new CharacterStyle() {
@Override
public void updateDrawState(TextPaint tp) {
}
});
Log.i(TAG, cs.toString());
}
} catch (RuntimeExecutionException e) {
// If the query did not complete successfully return null
Log.e(TAG, "Error getting autocomplete prediction API call", e);
}
希望这会有所帮助!
关于google-maps - 如何仅在边界内获取 Places.GeoDataApi.getAutocompletePredictions ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766921/
问题:创建 Place 的最干净的方法是什么?来自 ID 字符串的对象? 我想做一些place硬编码 ID 之外的对象。想像 Place place1 = new Place("ChIJS_zBNNb
我在使用 Android Google Places API - 自动完成功能时遇到问题。 我正在尝试使用 Places.GeoDataApi.getAutocompletePredictions()
我正在使用适用于 Android 的 Places.GeoDataApi,根据执行请求的设备的位置,我会得到不同的搜索结果。我需要结果始终位于边界内。我不知道在 getAutocompletePred
我正在通过 Places.GeoDataApi.getAutocompletePredictions() 使用 GoogleApiClient 和 Places API 来获取地址/地点自动完成建议
Google Places Autocomplete API 中使用的 LatLngBounds 对象是什么? .. 和/或它是什么意思: biasing the results to a speci
我正在经历从废弃的 Places SDK 迁移到 Places API 的过程,如 here 所述。 ,使用兼容性库。在尝试迁移之前,一切都运行良好。我有 1) 更新了我的依赖 2) 更改我的导入语句
我们使用与示例应用类似的 Google Places API 预测。在选择结果时,我们使用以下方法获取预测位置的详细信息: Places.GeoDataApi.getPlaceById(mGoogle
我是一名优秀的程序员,十分优秀!