Mono для Android: обратное геокодирование текущее местоположение
С использованием MyLocationOverlay
Я получаю текущий GeoPoint пользователя.
myLocationOverlay.RunOnFirstFix (() => {
mapView.Controller.AnimateTo (myLocationOverlay.MyLocation);
RunOnUiThread (() => {
DisplayIncidentsNearMe (myLocationOverlay.MyLocation);}
);
}
);
Однако, чтобы ReverseGeoCode это местоположение, мне нужен Lat/Lng. GeoPoint из MyLocationOverlay имеет формат LatitudeE6, поэтому не работает.
Как я могу получить "нормальный" широта / долгота от объекта местоположения, возвращенного из MyLocationOverlay
?
Geocoder geo = new Geocoder (this, Java.Util.Locale.Default);
var ad = geo.GetFromLocation (myLocation.LatitudeE6, myLocation.LongitudeE6, 1);
1 ответ
Решение
Из документации GeoPoint, LatitudeE6 это:
широта этой географической точки в микродеградах (градусы * 1E6).
Вы можете преобразовать это число обратно в градусы, разделив на 1e6:
double degrees = myLocation.LatitudeE6 / 1e6;