我正在尝试使用您已经知道的代码计算两个位置之间的路线。 在我的情况下,第一个位置是我的位置,第二个位置是最近的LatLng 一条路。
下面的代码计算最近的LatLng:
private LatLng nearestLatLng(Location mCurrentLocation) {
LatLng latLngCurrentLocation = new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude());
double nearestLatitude = 0;
double nearestLongitude = 0;
float minDistance = 1000; //I don't know how to initialize
float currentDistance;
for(int i=0; i<mLatLngGpxList.size(); i++) {
LatLng currentTrackLatLng = mLatLngGpxList.get(i);
currentDistance = getDistance(latLngCurrentLocation, currentTrackLatLng);
if(currentDistance <= minDistance) {
minDistance = currentDistance;
nearestLatitude = currentTrackLatLng.latitude;
nearestLongitude = currentTrackLatLng.longitude;
}
}
//mGoogleMap.addMarker(new MarkerOptions().position(new LatLng(nearestLatitude, nearestLongitude)));
return new LatLng(nearestLatitude,nearestLongitude);
}
//Calcola la distanza tra due LatLng
private float getDistance(LatLng first, LatLng second) {
float [] dist = new float[1];
Location.distanceBetween(first.latitude, first.longitude, second.latitude, second.longitude, dist);
return dist[0];
}
如果我在我的国家画一条路,我也可以画出到达它的路径,但是如果我画一条路 远离我的国家,我明白了:
org.json.JSONException: Index 0 out of range [0..0)
at org.json.JSONArray.get(JSONArray.java:263)
at org.json.JSONArray.getJSONObject(JSONArray.java:480)
等
因此没有画出我路径的路径。为什么? :(
Ps:我不会收到“error_message”:“您已超出此API的每日请求配额。”
更新:错误在上面的代码中。建议吗? :/
第二次更新:float minDistance = 1000; - &GT;变得漂浮minDistance = 100000000 现在有效。它仍然是一个逻辑问题,但我会看到..:/