我有兩對經度/緯度,並希望找到它們之間的距離。我堅持在這個特定的網站上使用經典的ASP。經典ASP中兩個緯度/長點之間的距離
我發現了很多使用Haversine方程的代碼示例,但沒有在ASP中(它缺少ACos
函數,並沒有內置pi
!我最終得到了一些代碼工作,但經過仔細測試證明它是我對球形幾何的理解不夠好,所以請任何人都說如果他們之前在ASP中完成過這個工作?!謝謝。
我有兩對經度/緯度,並希望找到它們之間的距離。我堅持在這個特定的網站上使用經典的ASP。經典ASP中兩個緯度/長點之間的距離
我發現了很多使用Haversine方程的代碼示例,但沒有在ASP中(它缺少ACos
函數,並沒有內置pi
!我最終得到了一些代碼工作,但經過仔細測試證明它是我對球形幾何的理解不夠好,所以請任何人都說如果他們之前在ASP中完成過這個工作?!謝謝。
哦,親愛的,我剛剛一直是一個完全白癡,並沒有發現一個一點點的代碼,我甚至進入三角之前設置我的緯度/長整數我覺得很愚蠢......
至少這意味着我的代碼是正確的,會張貼在這裏的情況下,它可以幫助別人:
'calculate distance in miles between two coordinates
Function DistanceBetweenPoints(iLat1, iLong1, iLat2, iLong2)
Dim iDistance
'first assume that the earth is spherical (ha ha)
iDistance = ACos((Sin(ToRad(iLat1)) * Sin(ToRad(iLat2))) + (Cos(ToRad(iLat1)) * Cos(ToRad(iLat2)) * Cos(ToRad(iLong2) - ToRad(iLong1)))) * 3959 'mean radius of earth in miles
DistanceBetweenPoints = CInt(iDistance) 'round up to lose decimal place
End Function
'ASP doesnt have these two trigonometric functions, or pi, built in (needed above)
Const PI = 3.141592653589793100 'use this value from SQL
Function ToRad(iDegrees)
ToRad = CDbl(iDegrees) * PI/180
End Function
Function ACos(x)
If x = 1 Then
ACos = 0
ElseIf x= -1 Then
Acos = PI
Else
ACos = ATn(-x/Sqr(-x * x + 1)) + 2 * ATn(1)
End If
End Function
此代碼源較爲齊全:距離可在英里或公里或海里.. http://www.geodatasource.com/developers/asp
已經回答了我的問題。衛生署! – 2011-01-28 13:10:04