2017-08-15 75 views
-1

我想使用排球庫來獲取特定地址的經度和緯度。儘管我已經能夠成功地獲得地址,但我沒有獲得經度和緯度值。如何使用volley從JSON獲取經度和緯度?

String googleMapUrl = "http://maps.googleapis.com/maps/api/geocode/json?address="+ place + "&sensor=false"; 

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, googleMapUrl, null, new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 
        try { 
         Toast.makeText(MainActivity.this, "Response "+ response, Toast.LENGTH_SHORT).show(); 
         // JSONArray res = o.getJSONArray("results"); 
         for (int i = 0; i < response.length(); i++) { 
          //JSONObject jsonObj = new JSONObject(result.toString()); 
          //JSONArray resultJsonArray = jsonObj.getJSONArray("results"); 

          JSONObject jsonObj = (JSONObject) response.get("i"); 

          JSONObject resultJsonArray = jsonObj.getJSONObject("results"); 


          // Extract the Place descriptions from the results 
          // resultList = new ArrayList<String>(resultJsonArray.length()); 

          JSONObject before_geometry_jsonObj = resultJsonArray.getJSONObject("0"); 

          JSONObject geometry_jsonObj = before_geometry_jsonObj 
            .getJSONObject("geometry"); 

          JSONObject location_jsonObj = geometry_jsonObj 
            .getJSONObject("location"); 

          String lat_helper = location_jsonObj.getString("lat"); 
          lat = Double.valueOf(lat_helper); 


          String lng_helper = location_jsonObj.getString("lng"); 
          lng = Double.valueOf(lng_helper); 

我該如何解決這個問題?

+1

你怎麼正好與你的意思是沒有得到的緯度和經度?你對地點的意見是什麼? –

+0

地點輸入是將從用戶處獲取的地址地址。 – John

+0

請你舉個例子,回答我的第一個問題嗎?經度和緯度是什麼結果? –

回答

1

我解決了它這種方式

 JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, googleMapUrl, null, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 
       try { 
        Toast.makeText(MainActivity.this, "Response "+ response, Toast.LENGTH_SHORT).show(); 

        Log.d("Volley Response ", String.valueOf(response)); 
        lat = response.getJSONArray("results").getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lat"); 
        lng = response.getJSONArray("results").getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lng"); 

感謝Michael爲他的貢獻