如何使用 Google MAP API 通过 lat、lng 找到最近的城市

Posted

技术标签:

【中文标题】如何使用 Google MAP API 通过 lat、lng 找到最近的城市【英文标题】:How Can I find Nearest City by lat, lng using Google MAP API 【发布时间】:2017-09-15 12:52:32 【问题描述】:

我正在尝试使用 Google Map API 获取城市名称,但没有得到。 我已经使用 Google API 获得了 Lat, Lng 现在我想获得 10KM 距离内的城市名称。

我正在使用以下 URL 获取 LatLng。 https://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=""

【问题讨论】:

【参考方案1】:
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();
                
            
        

【讨论】:

以上是关于如何使用 Google MAP API 通过 lat、lng 找到最近的城市的主要内容,如果未能解决你的问题,请参考以下文章

如何在现有的旧版Android项目中使用最新的API添加Google Map?

Android。点击标记后的Google map API工具

如何在 android 上使用 google map api 获取 google 驾驶指令?

如何在现有较旧的 android 项目中使用最新 API 添加 Google Map?

google map api V3 如何对marker进行操作。

Google Map API 通过邮政编码获取地址信息,但它通过街道号响应结果