Я работаю над мобильным веб-проектом, который должен знать направление компаса, на которое указывает пользовательское устройство. Это невероятно просто прямо сейчас, но вот то, что у меня есть:Ориентация устройства HTML5 - надежная реализация компаса?
var updateDirection = function (evt) {
$("#direction").val(evt.alpha);
};
window.addEventListener("deviceorientation", updateDirection);
Основываясь на том, что я исследовал до сих пор, альфа-канал события должна быть позиция компаса. Тем не менее, я наблюдал (и читал), что существует множество реализаций на основе ОС и браузера.
- На моем HTC смартфон, в Chrome или браузере Android по умолчанию, я только получить разумное чтение (0 градусов = Север, 90 = Восток, так далее), когда я держу телефон строго вертикально в «селфи» должность. Любой угол по отношению к телефону забрасывает показания довольно далеко.
- На моей поверхности Pro с использованием Chrome я не могу получить чтение больше, чем около 50.
- На моей поверхности Pro с использованием Edge я получаю очень разумные показания, но только когда я держу устройство горизонтально, как если бы оно лежала на столе.
Похоже, что люди достигли направления компаса в мобильном браузере независимо от устройства. Есть ли какая-то библиотека, которую я могу использовать для этого? Или это надо просто код для различных конкретных сценариев, как в этом примере, что также не работают для всех перечисленных устройств:
https://mobiforge.com/design-development/html5-mobile-web-device-orientation-events это не очень хорошая новость для вас. :( – lv0gun9
Для чего-то совершенно другого вы можете попробовать использовать [геолокация] (https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation) и определить вектор курса из двух последовательных lon/lat координаты. Тогда вы можете использовать что-то вроде [this] (http://stackoverflow.com/a/22740092/2592445), чтобы вычислить показание компаса. – Fasermaler