【坐标】根据经纬度获取城市名称

AntiMoron 2014-04-25 01:18:52
我封装了如下的方法获取地址的字符串
private String GetLocationString()
{

LocationManager locationmanager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
List<String>lp = locationmanager.getAllProviders();
for(String _param : lp)
Log.i("可用位置",_param);
criteria.setCostAllowed(false);
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
String providername = locationmanager.getBestProvider(criteria, true);
if(providername != null)
{
Log.i("所用定位",providername);
Location location = locationmanager.getLastKnownLocation(providername);
if(location == null) return "error occured while getting location";
double latitude = location.getLatitude();
double longitude = location.getLongitude();
return ""+latitude + " " + longitude;
}
return "error";
}

现在我想根据经纬度来获取城市名称。求教怎么办。
...全文
3284 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
icyblood198999 2014-04-25
  • 打赏
  • 举报
回复
百度api现在应该也可以实现经纬度转换地理文字。
AntiMoron 2014-04-25
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
http://blog.csdn.net/stardust_oak/article/details/6936623

貌似不可以。。。

请问还有没有其他好用的API网址。
我用这里的代码

public static String GetAddr(String latitude, String longitude) {  
String addr = "error Loading location Info";

/*
* 也可以是http://maps.google.cn/maps/geo?output=csv&key=abcdef&q=%s,%s,不过解析出来的是英文地址
* 密钥可以随便写一个key=abc
* output=csv,也可以是xml或json,不过使用csv返回的数据最简洁方便解析
*/
String url = String.format(
"maps.google.cn/maps/geo?output=csv&key=abcdef&q=%s,%s",
latitude, longitude);
URL myURL = null;
URLConnection httpsConn = null;
try {

myURL = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
}

try {

httpsConn = (URLConnection) myURL.openConnection();

if (httpsConn != null) {
InputStreamReader insr = new InputStreamReader(
httpsConn.getInputStream(), "UTF-8");
BufferedReader br = new BufferedReader(insr);
String data = null;
if ((data = br.readLine()) != null) {
String[] retList = data.split(",");
if (retList.length > 2 && ("200".equals(retList[0]))) {
addr = retList[2];
} else {
addr = "error Loading location";
}
}
insr.close();
}
} catch (IOException e) {

e.printStackTrace();
return null;
}
return addr;
}

}


总是提示 "error Loading location"

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧