![](/img/trans.png)
[英]How to show user input location in Map according to lat, long in android using Google Map v2?
[英]How would I store and display a location on Google Maps using the address entered by the user and not the lat or long?
我正在使用Android Studio制作用於分配任務的應用程序,如何在用戶僅輸入街道地址,城市,郵政編碼/郵政編碼后注銷后將位置存儲並顯示在Google地圖上並留在那里,國家/地區,而不是經緯度或長期坐標?
首先,您需要將地址轉換為匹配的緯度經度對。 因此,如果我輸入Amsterdam
,它將返回該城市的緯度和經度。 這種轉換稱為地理編碼。 有一個Android教程 ,可以使用Geocoder類精確地做到這一點。 如果只想簡單地使用第一個值,這是RxJava 2的示例:
private Geocoder _geocoder;
public Observable<Location> convertAddressToLatLng(final String address) {
if (_geocoder == null) {
_geocoder = new Geocoder(_context);
}
return Observable.just(address)
.map(new Func1<String, Location>() {
@Override
public Location call(String s) {
try {
List<Address> addressList = _geocoder.getFromLocationName(address, 1);
if (addressList != null && addressList.size() > 0) {
Address bestMatch = addressList.get(0);
Location result = new Location("");
result.setLatitude(bestMatch.getLatitude());
result.setLongitude(bestMatch.getLongitude());
return result;
} else {
return null;
}
} catch (IOException ex) {
Log.e(TAG, "Error while geocoding!", ex);
return null;
}
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.