Comment by jacquesm
1 month ago
Neat. If you want to make it more practically useful you will need to include some kind of magnetic compensation map. That's one of the reason navigation apps usually are a bit larger, they require a lot of data to function well world wide. Best of luck with this, it looks very promising!
Thanks! Currently, MBCompass can show both magnetic north using Android’s sensor fusion and true north (based on WGS84 geodetic coordinates).
Adding a magnetic compensation map sounds like a great fit for improving global accuracy without changing the app’s core goals. Thanks for the suggestion.
YW, there are some pretty compact representations possible of that data but it will come at a considerable expense in computational overhead.
https://www.ncei.noaa.gov/products/earth-magnetic-model-anom...
Is a good starting point.
You are linking to the magnetic anomaly grid, which is primarily intended for geophysical research and modeling local variations.
For a basic compass app, you can rely on the World Magnetic Model (WMM) instead: https://www.ncei.noaa.gov/products/world-magnetic-model
From that, you can pre-compute a low-resolution declination grid. NOAA even provides one here: https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml#i.... That’s only a few KB of data and requires just a simple declination subtraction based on lat/lon, similar to how it’s handled on nautical charts. This works fine as long as you stay away from the poles (and Alaska).
2 replies →