2016-11-10 4 views
0

Я программирую навигационное приложение с OSMdroid.Получение долготы и широты от GpsMyLocationProvider (OSMdroid)

Как извлечь латентность и долготу из GpsMyLocationProvider в Geopoint, чтобы я мог сосредоточить карту на ней?

this.mLocationOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(this),map); this.mLocationOverlay.enableMyLocation();

Я попробовал это. Но это только делает крах приложения, как только я нажимаю кнопку для этого метода: mapController.setCenter((IGeoPoint) this.mLocationOverlay);

+0

Какая ошибка возникает при сбое приложения? Является ли mapController нулевым? –

+0

@jimmycarr Когда я отлаживаю, на последней строке контроллер карты «MapController @ 4177» – Glave

+0

Вы видите ошибку в консоли? Какой тип исключения вы получаете? –

ответ

0

Похоже, что вы бросаете MyLocationNewOverlay к IGeoPoint, но не реализует интерфейс IGeoPoint, так что вы будете получать исключение ClassCastException. Удостоверьтесь, что вы прошли действительный IGeoPoint до setCenter().

+0

Итак, сначала мне нужно создать правильный Geopoint с 'GeoPoint myLocation = new GeoPoint (долгота, широта) '? Проблема в том, что я понятия не имею, как получить долготу и широту от GpsMyLocationProvider. – Glave

+0

Вы можете вызвать '.getLastKnownLocation(). GetLatitude()' в провайдере местоположения –

+0

Android Studio говорит мне: Нестатический метод «getLastKnowLocation()» не может ссылаться на статический контекст. Извините, я новичок в Java. – Glave