**Theory**

A large majority of these calculations are based on the Earth being a perfect sphere with evenly geocentric latitudes. Making this assumption allows us to use these formulas in any part of the world with minimal error while at the same time keeping the mathematics simple enough to understand. In this article the radius of the Earth is used for several calculations. The radius of the Earth can be represented using any form of measurement, kilometers (km), miles (mi), etc. For these formulas we can define the radius in any units as long as we also define any distance variables in the same units. For most cases using the average radius of the Earth, 6367 km, will result in accurate enough results.

In the real world we know that the Earth is an ellipsoidal in shape and that the circles of latitude are further apart near the equator and closer together near the poles. Ellipses have a minor axis and a major axis. For Earth, the minor axis passes through the poles and has an approximate polar radius of 6,356.7523142 km (b). The major axis is equivalent to the radius at the equator with an approximate radius of 6,378.137 km (a). When Earth is assumed to be a sphere the latitude is the angle between the equatorial plane and a line from the center of Earth (r). In the real world the angle of latitude is the angle between the radius of curvature in the minor axis and the equatorial plane (r_{N}).

Figure 1 Geodetic Latitude in Ellipsoidal Earth

The formula to calculate the radius of curvature in the minor axis is as follows:

The formula for calculating the radius of the Earth at a specific geodetic latitude with respect to the center of the Earth is as follows:

**Application**

All the formulas in this article will implement a global variable for the radius of the Earth as defined below. We will also make the radius of Earth at poles and equator global variables. Rather than using *a* and *b* as variable names we will us equatorRadius (a) and polarRadius (b).

var earthRadius = 6367; //radius in km var equatorRadius = 6378.137; //equatorial radius in km var polarRadius = 6356.7523142; //polar radius in km

Listing 1 Global Variable: Radius of the Earth

For calculating the radius of the Earth at a specific geodetic latitude we will create two functions. The first function will take in a VELatLong and return the radius and the second function will take a latitude in degrees.

** **

function getEarthRadius(latlong){ return getEarthRadiusAtLatitude(latlong.Latitude); } function getEarthRadiusAtLatitude(latitude){ var lat = DegtoRad(latitude); return equatorRadius*Math.sqrt(Math.pow(polarRadius,4)/Math.pow(equatorRadius,4)* Math.pow((Math.sin(lat)),2)+Math.pow(Math.cos(lat),2))/ Math.sqrt(1-(1-(polarRadius*polarRadius)/( equatorRadius*equatorRadius))*Math.pow(Math.sin(lat),2)); }

Listing 2 Radius of Earth at a specific geodetic Latitude

The following post has additional information on the DegToRad method: http://rbrundritt.spaces.live.com/blog/cns!E7DBA9A4BFD458C5!257.entry