您好,登錄后才能下訂單哦!
今天在開發的過程中遇到了一個很奇葩的問題,就是之前已經寫好的代碼在Android 7.0 的系統中運行是正常的,但是在Android8.0 的系統中運行就出現了問題。在網上也找了很多資料,經過自己的不斷折騰,終于找到了問題。廢話不 多說了,直接上代碼:
public void getLatAndLng(String cityName) {
Geocoder geocoder = new Geocoder(this,Locale.CHINA);
try {
List<Address> 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
br/>@Override
getLatAndLng("城市名稱");
}
}.start();
以上代碼可以完成根據城市名稱獲取經緯度以及相關城市的信息
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。