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;
Другие вопросы по тегам