如何使用 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 获取 Lat
、Lng
。
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("&output=responseText&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?