External Compass

I am having issues with heading data, so i wanted to use external compass for that, is there any specific compass i need to buy or any USB based compass will work fine as i will connect it to PI4. BTW i am considering to buy Rion HCM375B-232-68-N.

secondly, which of the below will provide that USB compass data and it will be helpful if someone explain these and whats difference b/w them.

11. GPS Heading,
12. Compass Heading (if available),
13. Main Heading Sensor Used ("GPS"/"Compass"),

Unless gpsd supports it as part of a GPS device, external compass isn’t supported. What exactly are the problems that you are having with heading?

GPS heading is the heading generated from GPS data, which is only available when moving.

Compass heading is the heading generated from the compass on the Android device

Main heading sensor used is the sensor that was used during data collection (most often GPS)