Повышение API дает мне нелогичные результаты

Я использую долготу и широту любого местоположения, чтобы получить высоту, используя Google возвышение API.

https://developers.google.com/maps/documentation/elevation/

Но это дает мне нелогичные возвышения, например, я на втором этаже, и это дает мне 88 метров

Есть у кого объяснение по этому вопросу?!

2 ответа

Решение

API, на который вы смотрите, дает вам высоту над уровнем земли на основе набора опорных данных. Он хочет быть в состоянии рассказать о вас на втором этаже здания. Лучшее, что он сделает, это скажет вам высоту первого этажа здания.

Если вам нужна высота над уровнем земли, вы можете получить что-то точное с точностью до +-0,5 м на телефоне с датчиком давления, но это будет означать получение показаний на уровне земли, а затем на уровне, который вас интересует. Есть getAltitude (float, float) метод, который вы можете использовать, чтобы получить относительную высоту в двух точках на основе показаний давления. Без калибровки абсолютные значения высоты не будут точными, но относительно друг друга они должны быть хорошими. Мои тесты показывают, что я вижу разницу, просто поднимая свой xperia Active со стола с помощью этой настройки с небольшой фильтрацией необработанных значений давления.

Недавно я ознакомился с этим Elevation API. Итак, если вы находитесь на правильном пути, то, что вы получите, так как 88 метров - это высота земли (где находится ваше здание) с разницей уровня моря, а не высота от земли до второго этажа. Вы можете использовать метод getAltitude() для этого, но он дает вам высоту от эллипсоида, а не от уровня моря, а также не очень точный, вам, возможно, придется сделать некоторые вычисления, чтобы исправить точность.

пожалуйста, смотрите этот вопрос в ТАК, ссылки, предлагаемые это и это

надеюсь, это поможет вам

Другие вопросы по тегам