Android 根据名字获取经纬度,Android 根据城市获取经纬度 适配Android 7.0 、Android 8.0...

今天在开发的过程中遇到了一个很奇葩的问题,就是之前已经写好的代码在Android 7.0 的系统中运行是正常的,但是在Android8.0 的系统中运行就出现了问题。在网上也找了很多资料,经过自己的不断折腾,终于找到了问题。废话不 多说了,直接上代码:

public void getLatAndLng(String cityName) {

Geocoder geocoder = new Geocoder(this,Locale.CHINA);

try {

List

addressList = geocoder.getFromLocationName(cityName,5);

if (addressList.size()> 0) {

Address address = addressList.get(0);

double latitude = address.getLatitude();//纬度

double longitude = address.getLongitude();//精度

mSelectProvince = address.getAdminArea();// 省份名称

mSelectArea = address.getSubLocality();//区名称

locationLatLng = new LatLng(latitude,longitude);

//centerToLocation();

}

}catch (IOException e) {

e.printStackTrace();

}

}

此方法为根据城市名称获取经纬度以及相关的城市信息。此代码在Android7.0的系统中可以直接进行调用使用,在Android 8.0的系统中需要在子线程中运行,具体的代码如下:

new Thread() {

@Override

public void run() {

getLatAndLng("城市名称");

}

}.start();

以上代码可以完成根据城市名称获取经纬度以及相关城市的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值