我写了一些代码,根据它们的突出程度搜索附近的地方。接下来,我想根据与用户之间的递增距离获取我的应用搜索位置。为此,我了解到我需要使用rankby=distance
,但是rankby
不允许使用radius
的值-因此以下基于半径的搜索无效:
nearPlaces = googlePlaces.search(
gps.getLatitude(),
gps.getLongitude(),
radius,
types
);
我看过几个博客和文章,人们都在问类似的问题,但是没有一个提供似乎有效的答案。如果不是以上所述,我应该使用什么?
最佳答案
私有静态最终字符串PLACES_SEARCH_URL =“ https://maps.googleapis.com/maps/api/place/search/json?rankby=distance&”;
公共场所列表搜索(双纬度,双经度,双半径,字符串类型)
引发异常{
this._latitude = latitude;
this._longitude = longitude;
this._radius = radius;
//this._rankby=_rankby;
try {
HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT);
HttpRequest request = httpRequestFactory
.buildGetRequest(new GenericUrl(PLACES_SEARCH_URL));
request.getUrl().put("key", API_KEY);
request.getUrl().put("location", _latitude + "," + _longitude);
// request.getUrl().put("radius", _radius);
request.getUrl().put("rankBy", _radius);
// in meters
request.getUrl().put("sensor", "false");
//request.getUrl().put("rankby", _rankby);
if(types != null)
request.getUrl().put("types", types);
PlacesList list = request.execute().parseAs(PlacesList.class);
// Check log cat for places response status
Log.d("Places Status", "" + list.status);
return list;
} catch (HttpResponseException e) {
Log.e("Error:", e.getMessage());
return null;
}
}