我想找出两个纬度和经度之间的行驶距离。这是我的代码
私人字符串GetDistance(LatLng原点,LatLng dest){
// 路由的起源
字符串 str_origin = "origin=" + origin.latitude + ","
+ 原点。经度;
// 路由目的地
字符串 str_dest = "destination=" + dest.latitude + "," + dest.longitude;
// 传感器启用
字符串传感器=“传感器=假”;
// 将参数构建到 Web 服务
字符串参数 = str_origin + "&" + str_dest + "&" + sensor;
// 输出格式
字符串输出 = "json";
// 构建 Web 服务的 url
字符串 urlString = "https://maps.googleapis.com/maps/api/directions/"
+ 输出 + “?” +参数;
// 获取 JSON 并对其进行解析以获取路线数据。
HttpURLConnection urlConnection = null;
网址网址 = 空;
尝试 {
url = 新 URL(urlString.toString());
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();
InputStream inStream = urlConnection.getInputStream();
BufferedReader bReader = new BufferedReader(new InputStreamReader(
流中));
字符串温度,响应=“”;
while ((temp = bReader.readLine()) != null) {
// 解析数据
响应 += 温度;
}
// 关闭阅读器、流和连接
bReader.close();
inStream.close();
urlConnection.disconnect();
// 排序 JSON 响应
// JSONObject object = (JSONObject) new JSONTokener(response)
// .nextValue();
JSONObject 对象 = 新 JSONObject(响应);
JSONArray 数组 = object.getJSONArray("routes");
// Log.d("JSON","array: "+array.toString());
// 路由是对象和数组的组合
JSONObject 路由 = array.getJSONObject(0);
// Log.d("JSON","routes: "+routes.toString());
字符串摘要 = routes.getString("summary");
Log.d("JSON","summary:"+summary);
JSONArray 腿 = routes.getJSONArray("legs");
// Log.d("JSON","legs: "+legs.toString());
JSONObject 步骤 = leg.getJSONObject(0);
// Log.d("JSON","steps: "+steps.toString());
JSONObject 距离 = steps.getJSONObject("距离");
// Log.d("JSON","distance: "+distance.toString());
sDistance = distance.getString("text");
iDistance = distance.getInt("值");
} 捕捉(异常 e){
// TODO: 处理异常
返回 e.toString();
}
返回 sDistance;
}
我得到了一个例外
org.json.JSONException: 索引 0 超出范围 [0..0)
这是我的堆栈跟踪
Ljava.lang.StackTraceElement;@41019be8
请帮我解决问题所在。