2017-04-15 54 views
0

我正在開發一個地圖應用程序,它允許用戶發送持續時間數據,以便他到達另一個地方到數據庫(MySQL),因此我嘗試了到directely從URL中提取時間的雙重價值,因爲它的顯示在下面的方法:從Google-distance url中提取時間

@Override 
public void setDouble(String result) { 
    String res[]=result.split(","); 
    Double min=Double.parseDouble(res[0])/60; 
    int dist=Integer.parseInt(res[1])/1000; 
    Duree.setText("Duration= " + (int) (min/60) + " hr " + (int) (min % 60) + " mins"); 
    Distance.setText("Distance= " + dist + " kilometers"); 
} 

在這種方法中,它的工作,但是當我試圖做這樣的:

url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins="+latt+","+lngg+"&destinations="+lt+","+lg+"&mode=driving&language=fr-FR&avoid=tolls&key=API_KEY"; 
String res[]=url.split(","); 
Double duration=Double.parseDouble(res[0])/60; 

這表明我知道這不是一個有效的雙精度值,因爲我知道當我單擊按鈕時需要發送這個值在標記點擊後在一個彈出窗口上結婚(因此內部類的問題被提出)。 你能幫助我知道什麼是正確的做法,如果可能的話!

回答

1

不要期望你的第一個結果字段包含持續時間,但使你的解析更聰明一點。使用時,通過例如,org.json庫(introduction on json

下面的代碼片段應該有點幫助:

LOGGER.debug("---google duration in seconds = {}", jsonElement.opt("duration") == null ? 0 : jsonElement.getJSONObject("duration").get("value")); 

transportInfo.setDuration(jsonElement.opt("duration") == null ? 0 : (Integer) jsonElement.getJSONObject("duration").get("value")); 

而且,順便說一句,我建議從您的帖子刪除儘快API密鑰....請注意,這把鑰匙可能會被其他人使用。

+0

非常感謝我完全忘記了這句話。 –