一、所在位置磁偏角值的获取
可以通过 GeomagneticField 类来获取到磁偏角值,具体代码如下:
private fun getDeclination(): Float {
val location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)
val geomagneticField = GeomagneticField(
location?.latitude?.toFloat() ?: 0f,
location?.longitude?.toFloat() ?: 0f,
location?.altitude?.toFloat() ?: 0f,
System.currentTimeMillis()
)
return geomagneticField.declination
}
ps: 如果是对指南针开发要算上磁偏角的值,计算方法如下:
// 磁偏角为正值(东偏),有些地方为负值(西偏) // 如果磁偏角为正值(东偏),则需要将指南针读数减去磁偏角。 // 如果磁偏角为负值(西偏),则需要将指南针读数加上磁偏角的绝对值