This query function will calculate the distance, in meters, between two
geographical coordinates (lat1
,
lon1
) and
(lat2
,
lon2
) along an ideal earth surface.
It uses the Haversine approximation, which is accurate to about 0.5%. It doesn't take the altitude into account.
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
as | string | optional[a] | _distance | The name of the field that is produced by the function. |
lat1 | string | required | The field to use for latitude of first point. | |
lat2 | string | required | The field to use for latitude of second point. | |
lon1 | string | required | The field to use for longitude of first point. | |
lon2 | string | required | The field to use for longitude of second point. | |
[a] Optional parameters use their default value unless explicitly set. |
Note
The values of latititude and longitude coordinates must be expressed in decimal degrees.
geography:distance()
Examples
To calculate the distance between two geographical coordinates in meters, you could use a query function like so:
logscale
londonLat := 51.507222
| londonLon := -0.1275
| tokyoLat := 35.689722
| tokyoLon := 139.692222
| distance := geography:distance(lat1=londonLat, lon1=londonLon, lat2=tokyoLat, lon2=tokyoLon)