Sorun giderme · 8 dk okuma
Android'de kıble pusulası: manyetik kuzey, tarayıcı farkları ve sensör kalitesi
Chrome manyetik kuzeye göre okuma verir ve doğruluk bilgisi paylaşmaz. Android'e özgü sorunlar, tarayıcı farkları ve neyi kontrol etmeli.
Android ekosisteminde pusula davranışı, iOS'a göre daha değişkendir — çünkü tek bir donanım üreticisi yok. Aynı tarayıcı sürümü, iki farklı telefonda belirgin biçimde farklı kalitede sonuç verebilir. Bu yazı hangi değişkenlerin işin içinde olduğunu ve neyi kontrol edebileceğinizi anlatıyor.
Chrome manyetik kuzeyi bildirir
Android Chrome, cihazın yönünü deviceorientationabsolute olayı üzerinden paylaşır ve bu değer manyetik kuzeyegöredir. iOS'un aksine sapma düzeltmesi uygulanmış değildir; onu uygulamanın yapması gerekir.
Türkiye'de manyetik sapma yaklaşık +6 derecedir (doğu yönünde). Yani düzeltme yapılmazsa kıble tutarlı biçimde altı derece yanlış çıkar. Bu hatanın en tehlikeli tarafı sistematik olması: her seferinde aynı yöne kayar, dolayısıyla tutarsızlık üretmez ve kullanıcı fark edemez.
Sitemizde bu düzeltmeyi biz uyguluyoruz ve uyguladığımızı da söylüyoruz: kadranın altında "sapma düzeltmesi uygulandı" etiketi görünür. Değerler NOAA'nın World Magnetic Model 2025 modelinden hesaplanır.
Doğruluk bilgisi yok
Android tarayıcıları, iOS'un webkitCompassAccuracy alanının karşılığını sunmaz. Yani cihaz size "pusulam şu anda ±5 derece güvenilir" demiyor.
Bu, doğruluk rozeti gibi bir özellik için ciddi bir sorun. Çözümümüz şu: son yirmi dört okumanın dairesel dağılımını ölçüyoruz. Okumalar birbirine yakınsa sensör kararlı, saçılıyorsa kararsız demektir. Bu bir tahmindir ama ölçülmüş bir tahmindir ve kalibrasyonun işe yarayıp yaramadığını görmeye yeter.
Hiçbir sinyal yoksa bunu uydurmuyoruz: rozet "cihaz doğruluk bilgisi vermiyor" yazar. Sahte bir kesinlik göstermek, hiç göstermemekten kötüdür.
Sensör kalitesi cihaza göre değişir
Android telefonlarda manyetometre kalitesi geniş bir yelpazeye yayılır. Üst segment cihazlarda sensör iyi, sürücü katmanı düzgün filtrelenmiş ve sensör füzyonu (manyetometre + jiroskop + ivmeölçer) etkili çalışır. Giriş seviyesi cihazlarda ise ham manyetometre verisi neredeyse filtresiz gelebilir.
Bazı çok ucuz cihazlarda manyetometre hiç yoktur. O durumda deviceorientationabsolute olayı ya hiç yayınlanmaz ya da absolute: false ile keyfi bir başlangıca göre değer gelir — yani göreli dönüş ölçülebilir ama kuzey nerede bilinemez.
Bu durumu tespit etmenin özellik denetimiyle bir yolu yok. Tek güvenilir sinyal "dinleyici bağladık, bekledik, veri gelmedi" durumudur. Biz bunu bir zaman aşımıyla algılıyor ve rozette açıkça yazıyoruz.
Tarayıcı farkları
Chrome dışındaki Android tarayıcıları farklı davranabilir. Bazıları deviceorientationabsolute olayını hiç yayınlamaz ve yalnızca deviceorientation verir; o olaydaki değer mutlak olmayabilir. Bazı gizlilik odaklı tarayıcılar sensör erişimini varsayılan olarak kısıtlar.
Ayrıca güvenli bağlam şartı var: sensör erişimi yalnızca HTTPS üzerinden çalışır. Bir siteyi güvensiz bağlantıyla açtıysanız pusula hiç çalışmaz.
Pratik tavsiye: pusula çalışmıyorsa Chrome ile deneyin. Çalışıyorsa sorun tarayıcıda, çalışmıyorsa donanımda veya ortamda.
Ekran döndürme tuzağı
Sensör verisi cihazın fiziksel gövdesine göre gelir. Ekran döndüğünde gövde çerçevesi ile ekran çerçevesi ayrışır. Uygulama ekran açısını okuyup ölçüme eklemezse, yatay modda pusula tam doksan derece yanlış gösterir.
Bunu kendiniz test edebilirsiniz: telefonu dikey tutarken bir açı okuyun, sonra yatay çevirip aynı yöne bakın. Değer doksan derece kaydıysa o uygulamada bu düzeltme yok. Ayırt edici belirti farkın tam doksan olması — düzensiz bir sapma değil.
Neyi kontrol edebilirsiniz
Android'de kıble sorunu yaşıyorsanız sırayı takip edin. Önce kılıfı çıkarın; manyetik tutucu ve kablosuz şarj pedinden uzaklaşın. Sonra ortamı değiştirin: sonuç odaya göre değişiyorsa sorun kesin olarak çevresel, kalibrasyon yapmak işe yaramaz.
Kalibrasyon için telefonla havada birkaç kez büyük bir sekiz çizin; bu hareket sensörün üç eksenini de görmesini sağlar. Sonra doğruluk rozetine bakın: kararsızlık azaldıysa çözüldü.
En belirleyici adım çapraz kontrol: güneş yöntemiyle aynı konumda ölçüm yapın. Güneş yöntemi manyetik alandan hiç etkilenmediği için iki sonucun uyuşup uyuşmaması hatanın nerede olduğunu doğrudan gösterir.
Cihazınızın manyetometresi zayıfsa zorlamak yerine yöntem değiştirmek doğru karar. Harita üzerinden duvar hizalama cihazın yönünü hiç ölçmez ve ev içinde çoğu zaman en güvenilir seçenektir. Bir kez ölçüp not aldığınızda o not yıllarca geçerli kalır, çünkü coğrafya değişmiyor.