我已經編寫了一些代碼來根據它們的突出位置搜索附近的地方。接下來,我想根據距離用戶的距離提升我的應用搜索位置。爲了做到這一點,我才知道,我需要使用rankby=distance
但rankby
不允許值radius
- 所以下面的半徑爲基礎的搜索無法正常工作:rankby = Google Places中的距離Android API
我見過幾個博客和人們提出類似問題的文章,但沒有一篇提供了似乎可行的答案。我應該使用什麼,如果不是以上情況?
我已經編寫了一些代碼來根據它們的突出位置搜索附近的地方。接下來,我想根據距離用戶的距離提升我的應用搜索位置。爲了做到這一點,我才知道,我需要使用rankby=distance
但rankby
不允許值radius
- 所以下面的半徑爲基礎的搜索無法正常工作:rankby = Google Places中的距離Android API
我見過幾個博客和人們提出類似問題的文章,但沒有一篇提供了似乎可行的答案。我應該使用什麼,如果不是以上情況?
私有靜態最後絃樂PLACES_SEARCH_URL = 「https://maps.googleapis.com/maps/api/place/search/json?rankby=distance&」;
公共PlacesList搜索(雙緯度,經度雙,雙半徑,字符串類型) 拋出異常{
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;
}
}
正確的是rankBy=distance...
保持B
資本rankBy...
你可以繞過它。我用「Google商家Web服務的 https://developers.google.com/places/webservice/search:使用位置API(使用HttpURLConnection類發送請求的)所有的地方
得到一個JSON:
String nearByPlaceSearchURL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?"
+ "location=" + myLatPosition + "," + myLonPosition
+ "&radius=" + myPlaceDistanceMeters
+ "&types=" + myPlaceName
+ "&key=" + MyConstants.KEY_FOR_PLACES_AND_DISTANCES_API;
解析返回的JSON和獲得每個地方的座標LAT/LON。
String distancesSearchURL = "https://maps.googleapis.com/maps/api/distancematrix/json?"
+ "origins=" + myLatPosition + "," + myLonPosition
+ "&destinations=" + allPlacesCoordinates
+ "&mode=walking"
+ "&key=" + MyConstants.KEY_FOR_PLACES_AND_DISTANCES_API;
注意,距離爲步行,駕車或騎自行車的距離,這就是:使用距離矩陣API從當前位置到地方的每一個
所有距離的JSON我們感興趣的距離。半徑距離(空氣距離)不相關。步行/駕駛/騎行距離大於空中距離。因此,例如,您可以搜索半徑爲10公里的地方,但步行距離爲11公里。
爲每個位置創建一個對象,其名稱和距離當前位置的距離作爲內部變量。
生成包含所有對象位置的ArrayList。
哇,真的有幫助! –
謝謝你。該文件說「rankby」與小寫「b」不正確。 –