如何为Google Places API的getAutocompletePredictions()方法提供合理的默认界限?

时间:2015-09-08 10:29:54

标签: android google-places-api

我正在使用这种方法:

Places.GeoDataApi.getAutocompletePredictions(googleApiClient, query, bounds, AutocompleteFilter.create(null))

它需要一个LatLntBounds对象,其东北和西南LatLng点作为查询的边界,但我不想提供任何。

尝试使用null,但得到了一个空指针异常 试过:

LatLng southWest = new LatLng(85, -180);
LatLng northEast = new LatLng(-85, 180);
LatLngBounds bounds = new LatLngBounds(southWest, northEast);

但获得了IllegalArgumentException: southern latitude exceeds northern latitude (85.0 > -85.0)

那我该如何:

a)获取当前用户位置的合理范围

b)获得世界界限

这样我就可以启动这个API了

1 个答案:

答案 0 :(得分:4)

它需要边界才能工作。只需创建它们。

import com.google.maps.android.SphericalUtil;

final double HEADING_NORTH_EAST = 45;
final double HEADING_SOUTH_WEST = 215;
final double diagonalBoundsSize = 1000; // 1km

LatLng centre = new LatLng(85, -180);

LatLng northEast = SphericalUtil.computeOffset(centre, diagonalBoundsSize / 2, HEADING_NORTH_EAST);
LatLng southWest = SphericalUtil.computeOffset(centre, diagonalBoundsSize / 2, HEADING_SOUTH_WEST);
LatLngBounds bounds = new LatLngBounds(southWest, northEast);