GeoDistance

GeoDistance[{lat1,lon1},{lat2,lon2}]

gives the geodesic distance between latitude-longitude positions on the Earth.

GeoDistance[loc1,loc2]

gives the distance between locations specified by position objects or geographical entities.

GeoDistance[{loc1,,locn}]

gives the total distance from loc1 to locn through all the intermediate loci.

Details and Options

  • GeoDistance[loc1,loc2] gives the distance between locations loc1 and loc2 as measured along the geodesic joining them on the surface of the reference ellipsoid. Heights are ignored.
  • The result is returned as a Quantity object with dimensions of length. The unit used can be chosen with the option UnitSystem, which has $UnitSystem as default value.
  • Latitudes and longitudes can be given as numbers in degrees, as DMS strings, or as Quantity angles.
  • Position objects in GeoDistance[loc1,loc2] can be given as GeoPosition, GeoPositionXYZ, GeoPositionENU, or GeoGridPosition objects.
  • In GeoDistance[loc1,loc2], the loci can be Entity objects with domains such as "City", "Country", and "AdministrativeDivision".
  • For entities corresponding to extended geographic regions, GeoDistance by default computes the minimum distance between any points in the regions.
  • GeoDistance[loc1,loc2] by default uses the reference ellipsoid associated with the datum for loc1.
  • GeoDistance automatically threads over lists of locations or GeoPosition arrays, so that GeoDistance[loc,locs] returns a list of distances, and GeoDistance[locs1,locs2] returns a matrix of distances. Results are given as QuantityArray objects.
  • GeoDistance and GeoDirection, or their combination in GeoDisplacement, solve the geodetic inverse problem.
  • GeoDistance has option DistanceFunction, with the following settings:
  • "Boundary"minimum distance between any points in regions
    "Center"distance between centers of regions
    "SignedBoundary"distance to boundary, negative for interior points
  • GeoDistance by default uses the setting DistanceFunction"Boundary".

Examples

open allclose all

Basic Examples  (5)

Distance between two positions on the reference ellipsoid:

Distance between two cities:

Distance between two fully specified geodetic positions:

Distances from a location to a list of different locations:

Total distance between several locations:

Scope  (8)

Distance between any two points on the Earth, using the parameters of the default datum "ITRF00":

Angles can also be specified as DMS strings:

Or as Quantity objects:

Compute the distance between Entity objects:

Or between an Entity object and a geo position:

Distance between geodetic positions, in different formats:

Compute distances from a common location to a list of positions, in any format:

Normalize the resulting QuantityArray object:

Compute a matrix of distances between two lists of locations:

Computing all individual distances separately is slower:

Height and time information is ignored in GeoDistance computations:

Points in different datums. The datum of the second point is changed to the datum of the first:

The difference is small:

Total distance between several locations:

Options  (2)

DistanceFunction  (1)

For extended entities, the distance is computed as the minimum between boundary points:

The distance between centers is larger:

When an entity is inside the other, a signed definition of distance can be used:

UnitSystem  (1)

The default unit of the result is determined by the value of $UnitSystem:

Change to a different system:

Applications  (1)

Compute the distances from your location to all US state capital cities:

Find the minimum, maximum and mean distances:

Plot a histogram of all those distances:

Draw a Mercator map of all geodesics from your location to the US capital cities:

Properties & Relations  (10)

GeoDistance is a symmetric function:

GeoDistance is a partial inverse of GeoDestination:

GeoDistance returns part of the result returned by GeoDisplacement for point-like locations:

The length of a degree of parallel strongly depends on latitude:

But the length of a degree of meridian is approximately constant:

The distance corresponding to a given meridian angle α increases when approaching the poles:

Compute distances between consecutive pairs in a list of points with GeoDistanceList:

The same result can be obtained using Partition and GeoDistance, though in a less efficient way:

Include the distance between the last and first point:

GeoDistance computes distances between points:

GeoLength computes the length of a geo path:

Construct points on a geodesic circle, starting with regular bearings:

On an ellipsoid, they are not exactly equidistant:

Construct multiple points along a geodesic, at regular distance intervals:

The list of distances can also be obtained with GeoDistanceList:

The distance between two locations coincides with the distance between their antipodal locations:

Possible Issues  (1)

Distance between extended geo entities is computed between boundaries by default, and hence zero for contiguous entities:

Therefore, this total distance is also zero:

Introduced in 2008
 (7.0)
 |
Updated in 2014
 (10.0)
2016
 (10.4)