由於谷歌地圖api的方向返回起點和目的地之間的驅動距離和時間。現在,如果我必須比較java中的時間和距離值,我們該怎麼做。 例如:距離1 =22公里距離2 =0.98公里 時間1 =1小時2分鐘時間2 = 3分鐘如何比較谷歌方向api返回的距離和持續時間字符串
現在,如果我要比較哪一個更大的時間和距離的字符串,我們如何能做到這一點?
由於谷歌地圖api的方向返回起點和目的地之間的驅動距離和時間。現在,如果我必須比較java中的時間和距離值,我們該怎麼做。 例如:距離1 =22公里距離2 =0.98公里 時間1 =1小時2分鐘時間2 = 3分鐘如何比較谷歌方向api返回的距離和持續時間字符串
現在,如果我要比較哪一個更大的時間和距離的字符串,我們如何能做到這一點?
您對此標記錯誤。這與JavaScript而不是Java有關。他們不是相同的語言。
至於你的問題。您可以通過直接訪問json來從指導中檢索值。
alert(JSON.stringify(response['routes'][0]));
在確定檢查後直接插入該行應該可以幫助您開始。
是的,我知道這..但我使用XML來檢索輸出。我已經獲取了字符串中持續時間值的值。現在假設如果我想比較這些字符串,我該怎麼做。例如: String time1 =「2小時24分鐘」; String time2 =「12分鐘」; – user2122539 2013-03-01 10:21:38
你在比較什麼? – Rafe 2013-03-01 10:48:52
我比較兩個時間值..這是更大或更小,以便我們可以繼續進行結果 – user2122539 2013-03-01 11:06:50
您需要將這些值轉換爲數字,例如距離和公里的時間 - 例如22和0.98, 62和3爲你的例子。然後你可以簡單地比較這些數字。
我不知道api是否總是以公里和小時/分鐘的形式返回值,你應該確保這一點,然後「簡單地」分析你得到的值。對於距離,這將是像這樣的東西:
double distance1 = Double.valueOf("22km".replace("km,""));
double distance2 = Double.valueOf(".98km".replace("km,""));
if (distance1 < distance2) {
System.out.println("distance1 is smaller");
} else if (distance2 < distance1) {
System.out.println("distance2 is smaller");
} else {
System.put.println("both distances are the same.");
}
對於時間部分,解析會更加複雜一些。
是的,我知道你可以使用正則表達式來做到這一點更優雅,但我不得不四處尋找它們,所以我採用簡單的方式。
你試過的只是在這裏添加你的研究和代碼。 – 2013-03-01 07:27:31
Fot eg:當我們查詢這個 http://maps.googleapis.com/maps/api/directions/xml?sensor=true&origin=sector+38A%2CNoida&destination=28.5328810,77.2747850 輸出是這樣的 持續時間:22分鐘 扇區20,諾伊達 – user2122539 2013-03-01 08:49:28