Как делает getAltitude () Android Работы Местоположения GPS

Привет!

Я пытался реализовать простое средство отслеживания GPS. Поэтому используется

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this);  

Затем я использовал

public void onLocationChanged(Location location) {

метод для чтения высоты моего текущего местоположения.

Но я действительно не знаю то, что возвращает Location.getAltitude (). В документе говорится, что он возвращает высоту. Но это находится в метрах? или праздники? если я поместил телефон на стол рядом со мной, это значение изменяется между 500 и-500??

Как это действительно работает???

7
задан Jonas 9 May 2010 в 08:06
поделиться

2 ответа

Значение высоты, которое вы получаете в метрах от опорного эллипсоида GPS (WGS84) , а не от геоид .

По моему собственному опыту, GPS действительно плохо работает на высоте.

Я прочитал это в Статусе GPS FAQ:

GPS не сообщает высоту над средним уровнем моря, а система GPS сравнивает высоту с опорным эллипсоидом WGS84, который может быть выше или ниже реального уровня моря. В разных частях Земли он может отклоняться более чем на 200 метров (в зависимости от распределения масс Земли). Например, поверхность геоида вокруг Флориды находится над средним уровнем моря примерно на 30-40 метров, а это означает, что если вы стоите на берегу, вы увидите -30 метров над уровнем моря. Это нормально, а не ошибка и вызвано тем фактом, что высота определяется относительно искусственной опорной поверхности, а не уровня моря. Если вам интересна эта тема, я рекомендую прочитать Средний уровень моря, GPS и геоид .

24
ответ дан 6 December 2019 в 05:54
поделиться

Я предполагаю, что ваш стол находится внутри здания. Если вы получаете GPS-привязку в здании, вы не должны ожидать, что точность будет очень высокой. Пробовали ли вы узнать точность фиксации, вызвав getAccuracy()?

.
1
ответ дан 6 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: