private static Double computeAngle(final GeoPoint point,final double sinLatitude,final double cosLatitude,final double sinLongitude,final double cosLongitude){
  final double x1=point.x * cosLongitude + point.y * sinLongitude;
  final double y1=-point.x * sinLongitude + point.y * cosLongitude;
  final double z1=point.z;
  final double y2=y1;
  final double z2=-x1 * sinLatitude + z1 * cosLatitude;
  if (Math.sqrt(y2 * y2 + z2 * z2) < Vector.MINIMUM_RESOLUTION) {
    return null;
  }
  return Math.atan2(z2,y2);
}

private static Double computeAngle ( final GeoPoint point , final double sinLatitude , final double cosLatitude , final double sinLongitude , final double cosLongitude ) { final double x1 = point . x * cosLongitude + point . y * sinLongitude ; final double y1 = - point . x * sinLongitude + point . y * cosLongitude ; final double z1 = point . z ; final double y2 = y1 ; final double z2 = - x1 * sinLatitude + z1 * cosLatitude ; if ( Math . sqrt ( y2 * y2 + z2 * z2 ) < Vector . MINIMUM_RESOLUTION ) { return null ; } return Math . atan2 ( z2 , y2 ) ; }
compute the angle for a point given rotation information .
