Повышение API дает мне нелогичные результаты
Я использую долготу и широту любого местоположения, чтобы получить высоту, используя Google возвышение API.
https://developers.google.com/maps/documentation/elevation/
Но это дает мне нелогичные возвышения, например, я на втором этаже, и это дает мне 88 метров
Есть у кого объяснение по этому вопросу?!
2 ответа
API, на который вы смотрите, дает вам высоту над уровнем земли на основе набора опорных данных. Он хочет быть в состоянии рассказать о вас на втором этаже здания. Лучшее, что он сделает, это скажет вам высоту первого этажа здания.
Если вам нужна высота над уровнем земли, вы можете получить что-то точное с точностью до +-0,5 м на телефоне с датчиком давления, но это будет означать получение показаний на уровне земли, а затем на уровне, который вас интересует. Есть getAltitude (float, float) метод, который вы можете использовать, чтобы получить относительную высоту в двух точках на основе показаний давления. Без калибровки абсолютные значения высоты не будут точными, но относительно друг друга они должны быть хорошими. Мои тесты показывают, что я вижу разницу, просто поднимая свой xperia Active со стола с помощью этой настройки с небольшой фильтрацией необработанных значений давления.
Недавно я ознакомился с этим Elevation API. Итак, если вы находитесь на правильном пути, то, что вы получите, так как 88 метров - это высота земли (где находится ваше здание) с разницей уровня моря, а не высота от земли до второго этажа. Вы можете использовать метод getAltitude() для этого, но он дает вам высоту от эллипсоида, а не от уровня моря, а также не очень точный, вам, возможно, придется сделать некоторые вычисления, чтобы исправить точность.
пожалуйста, смотрите этот вопрос в ТАК, ссылки, предлагаемые это и это
надеюсь, это поможет вам