2013-03-01 11 views
0

由於谷歌地圖api的方向返回起點和目的地之間的驅動距離和時間。現在,如果我必須比較java中的時間和距離值,我們該怎麼做。 例如:距離1 =22公里距離2 =0.98公里 時間1 =1小時2分鐘時間2 = 3分鐘如何比較谷歌方向api返回的距離和持續時間字符串

現在,如果我要比較哪一個更大的時間和距離的字符串,我們如何能做到這一點?

+0

你試過的只是在這裏添加你的研究和代碼。 – 2013-03-01 07:27:31

+0

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

回答

0

您對此標記錯誤。這與JavaScript而不是Java有關。他們不是相同的語言。

至於你的問題。您可以通過直接訪問json來從指導中檢索值。

alert(JSON.stringify(response['routes'][0])); 

在確定檢查後直接插入該行應該可以幫助您開始。

+0

是的,我知道這..但我使用XML來檢索輸出。我已經獲取了字符串中持續時間值的值。現在假設如果我想比較這些字符串,我該怎麼做。例如: String time1 =「2小時24分鐘」; String time2 =「12分鐘」; – user2122539 2013-03-01 10:21:38

+0

你在比較什麼? – Rafe 2013-03-01 10:48:52

+0

我比較兩個時間值..這是更大或更小,以便我們可以繼續進行結果 – user2122539 2013-03-01 11:06:50

0

您需要將這些值轉換爲數字,例如距離和公里的時間 - 例如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."); 
} 

對於時間部分,解析會更加複雜一些。

是的,我知道你可以使用正則表達式來做到這一點更優雅,但我不得不四處尋找它們,所以我採用簡單的方式。

相關問題