by ZIPCodeWorld (2 Submissions)
Category: Databases/Data Access/DAO/ADO
Compatability: VB 6.0
Difficulty: Unknown Difficulty
Originally Published: Tue 23rd March 2010
Date Added: Mon 8th February 2021
Rating: (1 Votes)
ZIPCodeWorld.com provides this routine to calculate the distance between two points (given the latitude/longitude of those points) in Visual
const pi = 3.14159265358979323846
Function distance(lat1, lon1, lat2, lon2, unit)
Dim theta, dist
theta = lon1 - lon2
dist = sin(deg2rad(lat1)) * sin(deg2rad(lat2)) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * cos(deg2rad(theta))
dist = acos(dist)
dist = rad2deg(dist)
distance = dist * 60 * 1.1515
Select Case ucase(unit)
Case "K"
distance = distance * 1.609344
Case "N"
distance = distance * 0.8684
End Select
End Function
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::: this function get the arccos function from arctan function :::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function acos(rad)
If abs(rad) <> 1 Then
acos = pi/2 - atn(rad / sqr(1 - rad * rad))
ElseIf rad = -1 Then
acos = pi
End If
End function
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::: this function converts decimal degrees to radians :::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function deg2rad(deg)
deg2rad = cdbl(deg * pi / 180)
End Function
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::: this function converts radians to decimal degrees :::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function rad2deg(rad)
rad2deg = cdbl(rad * 180 / pi)
End Function
response.write distance(32.9697, -96.80322, 29.46786, -98.53506, "m") & " miles<br>"
response.write distance(32.9697, -96.80322, 29.46786, -98.53506, "k") & " kilometers<br>"
response.write distance(32.9697, -96.80322, 29.46786, -98.53506, "n") & " nautical miles<br>"
%>
No comments have been posted about ZIPCodeWorld.com provides this routine to calculate the distance between two points (given the lati. Why not be the first to post a comment about ZIPCodeWorld.com provides this routine to calculate the distance between two points (given the lati.