2017-04-15 13 views
0

私は、別の場所、データベース(MySQL)にアクセスするのにかかる時間のデータをユーザーが送信できるマップアプリケーションを開発中です。それは、以下の方法で示していますようdirectely URLから期間のdouble値を抽出しますGoogleの距離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

最初の結果フィールドには継続時間が含まれていますが、構文解析を少し賢明にするとは思わないでください。

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キーを削除推薦....:使用すると、たとえばにより、コードスニペット後org.jsonライブラリ(introduction on json

は少し役立つはずですこのキーが他の人によって使用される可能性があることに注意してください。

+0

大変ありがとうございます。 –

関連する問題