2017-04-19 92 views
-3

我試圖使用Google Map API獲取城市名稱,但未獲取。 我通過使用Google API獲取Lat,Lng現在我想要在10KM的距離內獲得城市名稱。如何使用Google地圖API以lat,lng查找最近的城市

我正在使用以下URL獲取LatLnghttps://maps.googleapis.com/maps/api/geocode/json?address=Coburg,Austrelia&key= 「」

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=".$lat.",".$long."&radius=10000&type=administrative_area_level_2&key="" 

回答

0
You can try this 
ProgressDialog dialog=null; 
    @Override 
    public void onClick(View v) { 
      dialog = ProgressDialog.show(context, "", "Please! Wait...", true); 
      GetCurrentAddress result = new GetCurrentAddress(); 
      result.execute(""); 
     } 



    // getting address task 
    private class GetCurrentAddress extends AsyncTask<String, Void, String> { 

     @Override 
     protected String doInBackground(String... urls) { 
      String responseText = null; 
      String googleurl = "http://maps.google.com/maps/geo?"; 
      String latitude="38.89"; 
      String longitude ="-77.03"; 
     StringBuilder sbuilder=new StringBuilder(); 
     sbuilder.append(googleurl); 

     sbuilder.append("q="+latitude+","+longitude); 
     sbuilder.append("&amp;output=responseText&amp;sensor=true"); 
     String url=sbuilder.toString(); 

     try { 
      DefaultHttpClient httpclient=new DefaultHttpClient(); 
      HttpPost httppost=new HttpPost(url); 
      HttpResponse httpresponse=httpclient.execute(httppost); 
      HttpEntity httpentity=httpresponse.getEntity(); 
      InputStream is=httpentity.getContent(); 
      BufferedReader reader=new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
      StringBuilder sb=new StringBuilder(); 
      String line=null; 
     while((line=reader.readLine())!=null) 
     { 
      sb.append(line+"\n"); 

     } 
     is.close(); 
     responseText=sb.toString(); 
     } 
     catch(ClientProtocolException e) 
     { 
      e.printStackTrace(); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
     return responseText; 
     } 

     @Override 
     protected void onPostExecute(String resultString) { 
      dialog.dismiss(); 

      String response= resultString; 

      if (responseText != null) { 
       Log.v(TAG, "json response is:" + response); 
       try { 
        jObj = new JSONObject(response); 
        jsonarray = jObj.getJSONArray("Placemark"); 
        for (int i = 0; i < jsonarray.length(); i++) { 
         JSONObject innerJsonobject = jsonarray.getJSONObject(i); 
         String jsonaddress = innerJsonobject 
           .getString("address"); 


        } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
相關問題