我正在做一个Android应用程序,我需要找到距离&通过在android mapV2中给出两个lat / lang点来两个位置之间的旅行时间。
但是这个例子将点击位置作为源和&目的地位置。但我需要给出lat / lang值和&需要计算那个距离&这两个职位的时间价值。我怎么能这样做?谢谢。
答案 0 :(得分:0)
通过解析这个谷歌地图api你将两个地方: http://maps.googleapis.com/maps/api/geocode/json?latlng=“+ lat +”,“+ lon +& sensor = true”
然后传递地址以获得两点之间的距离。
然后对于距离你应该尝试这个,在我的情况下,它工作得很完美:
JSONParser jParser = new JSONParser();
String finalpickmefrom_encoded;
try {
finalpickmefrom_encoded = URLEncoder.encode(finalpickmefrom,"UTF-8");
String finaldropmeat_encoded = URLEncoder.encode(finaldropmeat,"UTF-8");
addressURLLL = "http://maps.googleapis.com/maps/api/directions/json?origin="+finalpickmefrom_encoded+"&destination="+finaldropmeat_encoded+"&sensor=false";
Log.e("Address","URL"+addressURLLL);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JSONObject json = jParser.getJSONFromUrl(addressURLLL);
JSONArray addressComp = json.getJSONArray(TAG_SHOW);
for(int i =0;i<addressComp.length();i++)
{
JSONObject cc = addressComp.getJSONObject(i);
JSONArray legss = cc.getJSONArray("legs");
for (int j = 0; j < legss.length(); j++) {
JSONObject c = legss.getJSONObject(j);
JSONObject long_name = c.getJSONObject("distance");
String withoutaddvia = long_name.getString("text");
String [] strwithout = withoutaddvia.split("\\s+");
finalDistanceWithoutAddVia = strwithout[0];
String str2 = strwithout[1];
String valuess = long_name.getString("value");
Log.e("PostalCode","1>>"+long_name);
Log.e("PostalCode","2>>"+finalDistanceWithoutAddVia);
Log.e("PostalCode","3>>"+valuess);
}
}
这里“finalDistanceWithoutAddVia”将是距离。