sinDeltaBearing static method

double sinDeltaBearing(
  1. num lat1,
  2. num lng1,
  3. num lat2,
  4. num lng2,
  5. num lat3,
  6. num lng3,
)

Implementation

static double sinDeltaBearing(num lat1, num lng1, num lat2, num lng2,
    num lat3, num lng3) {
  double sinLat1 = sin(lat1);
  double cosLat2 = cos(lat2);
  double cosLat3 = cos(lat3);
  num lat31 = lat3 - lat1;
  num lng31 = lng3 - lng1;
  num lat21 = lat2 - lat1;
  num lng21 = lng2 - lng1;
  double a = sin(lng31) * cosLat3;
  double c = sin(lng21) * cosLat2;
  double b = sin(lat31) + 2 * sinLat1 * cosLat3 * MathUtil.hav(lng31);
  double d = sin(lat21) + 2 * sinLat1 * cosLat2 * MathUtil.hav(lng21);
  double denom = (a * a + b * b) * (c * c + d * d);
  return denom <= 0 ? 1 : (a * d - b * c) / sqrt(denom);
}