- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Google Places Autocomplete API 中使用的 LatLngBounds
对象是什么?
.. 和/或它是什么意思:
biasing the results to a specific area specified by latitude and longitude bounds
?
在 Google Places Autocomplete 文档中,它说要传入 LatLngBounds
和 AutocompleteFilter
。
PendingResult<AutocompletePredictionBuffer> result =
Places.GeoDataApi.getAutocompletePredictions(
mGoogleApiClient, query, bounds, autocompleteFilter);
在使用 Places Autocomplete 时,我可以看到 AutocompleteFilter 如何限制结果,比如按国家/地区。不清楚的是如何使用 LatLngBounds
。在示例代码中,Bounds 对象是这样的:
private static final LatLngBounds BOUNDS_MOUNTAIN_VIEW =
new LatLngBounds(
new LatLng(37.398160, -122.180831),
new LatLng(37.430610, -121.972090));
它说绑定(bind)是到山景城(加利福尼亚旧金山湾区的一个城市),但当过滤器为空时,我仍然可以得到其他国家的结果。
来自这个资源: https://developers.google.com/places/android-api/autocomplete
Your app can get a list of predicted place names and/or addresses from the autocomplete service by calling GeoDataApi.getAutocompletePredictions(), passing the following parameters:
Required: A LatLngBounds object, biasing the results to a specific area specified by latitude and longitude bounds.
Optional: An AutocompleteFilter containing a set of place types, which you can use to restrict the results to one or more types of place.
最佳答案
假设您要搜索 Cafe The Coffee Day,如果您设置 LatLngBounds
,结果将根据该位置显示。
例如,如果您在 New York 设置 LatLngBounds
并搜索 cafe coffee day,您将看到 New York 的结果。如果您设置 Sydney 的 LatLngBounds
,您将看到 Sydney 的结果。
现在,如果您想将 LatLngBounds
设置为您的位置,那么您必须获取当前位置并据此设置 LatLngBounds
。
您还可以指定半径以获得特定结果。
例如。
我正在使用下面的代码来获取我当前所在城市的结果。
protected GoogleApiClient mGoogleApiClient;
private PlaceAutocompleteAdapter mAdapter;
AutoCompleteTextView autoTextViewPlace;
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(Places.GEO_DATA_API)
.build();
// I am getting Latitude and Longitude From Web API
if((strLatitude != null && !strLatitude.trim().isEmpty()) && (strLongitude != null && !strLongitude.trim().isEmpty())){
LatLng currentLatLng = new LatLng(Double.parseDouble(strLatitude), Double.parseDouble(strLongitude));
if(currentLatLng != null){
setLatlngBounds(currentLatLng);
}
}
public void setLatlngBounds(LatLng center){
double radiusDegrees = 0.10;
LatLng northEast = new LatLng(center.latitude + radiusDegrees, center.longitude + radiusDegrees);
LatLng southWest = new LatLng(center.latitude - radiusDegrees, center.longitude - radiusDegrees);
LatLngBounds bounds = LatLngBounds.builder().include(northEast).include(southWest).build();
mAdapter = new PlaceAutocompleteAdapter(getActivity(), mGoogleApiClient, bounds,
null);
autoTextViewPlace.setAdapter(mAdapter);
}
关于android - GeoDataApi.getAutocompletePredictions() 中 LatLngBounds 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40880117/
我试图将变量传递给 google.maps.LatLngBounds,但它不起作用。似乎唯一有效的是,如果我将数字硬编码为 float (文字),如果我尝试下面的内容,它会失败。我已经尝试了各种转换方
我想获取 Google map 框架右上角和左下角的 LatLng 以创建 LatLngBounds。有可能吗? 最佳答案 这可以使用 Map View API 轻松确定: yourMapFragme
我想将相机移动到适合 LatLngBounds 标记高度的位置。到目前为止,我可以使用以下代码来匹配标记的 anchor : LatLngBounds.Builder builder = new La
我在我的 android 应用程序中实现了 Google map v2 api。在这里,在一项 Activity 中,我成功地初始化了谷歌地图对象。我成功地在 map 中添加了五个标记,并且当前位置也
我是 google map 和 API 的新手,试图通过点击将 map 平移到某个区域。我没有时间在 API 引用中找到我需要的东西,也不确定如何去做,所以我没有太多东西,但这是我目前所拥有的。 我想
我有一个对应于矩形的字符串,如下所示: ((x1,y1),x2,y2)) 我想将其转换为 LatLngBounds 对象,并通过以下方式绘制矩形: myRectangle.setBounds(latL
在方法中 CameraUpdateFactory.newLatLngBounds(LatLngBounds bounds, int width, int height, int padding);
我想显示位于印度和美国的所有标记。这次 LatLngBounds 将显示缩放级别为 0,并且 map 可见区域介于印度和美国之间。有什么解决办法吗?对此的解决方案是,如果在 INDIA 中提供更多标记
我在我的应用程序中使用 PlacePicker。突然间它的行为很糟糕。当它启动时指向 (0.0, 0.0) lat lng。我不确定谷歌服务是否改变了什么。早些时候它工作正常,因为从 3 天开始它不工
我在我的 android 应用程序中使用 AutoComplete Places Widget。我只想将界限设置为印度。但我不知道印度的 LatLngBounds。有人知道坐标吗? 最佳答案 你可以用
我在搜索中没有找到答案,有一些关于 SO 的答案,但它们对我不起作用。 我在 map 上有 2 个标记,我正在使用 LatLngBounds 构建器,以便让相机缩放到正确的缩放级别以将它们都包含在内。
我想在 X 米处围绕中心点 (LatLng) 创建一个正方形 (LatLngBounds)。 最佳答案 使用 L.LatLng.toBounds() method ,例如 var center = L
好吧,在阅读了 Antonio 的评论后,我在我的代码中接受了这个。现在,无论我提交的百分比是多少,它仍然认为我的对象在边界框之外。 My Position 是传入的marker。 LatLngBou
我正在尝试使用 react-google-maps 渲染 Google map 。在 map 完全加载之前,我使用 geolocation.navigator 函数获取用户当前位置,但我需要使用用户位
这是我的代码: LatLngBounds.Builder builder = new LatLngBounds.Builder(); for(int x = firstVisibleItem; x
是否有一个函数允许为 MapFragment 的不同边缘指定默认填充值,即类似于 CameraUpdateFactory.newLatLngBounds(LatLngBounds 边界,整数填充) 它
我正在尝试在 map 上放置一些标记。数据是从数据库检索并使用 JSON 循环读取的。 标记已放置,但我也尝试在 map 上显示所有标记并将 View 居中。这似乎是随机的,我刷新页面,有时它显示 3
我通过调用获取谷歌地图的当前边界: map.getBounds() 这将返回 LatLngBounds。例如: ((-26.574013562724005, -1.5375947819336488),
我正在使用 google map javascript API,目前我正在尝试创建一个 LatLngBounds 对象,以便我可以根据数组中的位置将其应用到我的 google map 。 我正在找到西
Google Places Autocomplete API 中使用的 LatLngBounds 对象是什么? .. 和/或它是什么意思: biasing the results to a speci
我是一名优秀的程序员,十分优秀!