AstrologicalDictionary.com


Go to content

longi latti

Level 6

<% '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: '::: ::: '::: TITLE: Calculate Latitude and Longitude from Rate Center V&H in ASP ::: '::: ::: '::: This function calculates the latitude and longitude coordinates ::: '::: from Vertical and Horizontal (V&H) coordinates. V&H's are used to ::: '::: identify locations and hence relative distances between network ::: '::: elements and between rate centers listed in AreaCodeWorld(tm) Gold ::: '::: Edition in http://www.zipcodeworld.com. ::: '::: ::: '::: Function Input Parameters: ::: '::: V = Vertical value from 0 to 10000 ::: '::: H = Horizontal value from 0 to 10000 ::: '::: ::: '::: Function Output Parameters: ::: '::: Lat = Latitude from Vertical value ::: '::: Long = Longitude from Horizontal value ::: '::: ::: '::: North American Area Code NPA NXX database with V&H values is ::: '::: available at http://www.zipcodeworld.com. This sample code is ::: '::: provided to database subscribers "AS IS" without warranty of any kind. ::: '::: ::: '::: Email: sales@zipcodeworld.com ::: '::: ::: '::: URL: http://www.zipcodeworld.com ::: '::: ::: '::: ZIPCodeWorld.com © All Rights Reserved 2002-2005 ::: '::: ::: '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ' call vh2latlong(5079, 1444) const M_PI = 3.14159265358979323846 const TRANSV = 6363.235 const TRANSH = 2250.7 const ROTC = 0.23179040 const ROTS = 0.97276575 const RADIUS = 12481.103 const EX = 0.40426992 const EY = 0.68210848 const EZ = 0.60933887 const WX = 0.65517646 const WY = 0.37733790 const WZ = 0.65449210 const PX = -0.555977821730048699 const PY = -0.345728488161089920 const PZ = 0.755883902605524030 const GX = 0.216507961908834992 const GY = -0.134633014879368199 const A = 0.151646645621077297 const Q = -0.294355056616412800 const Q2 = 0.0866448993556515751 Function vh2latlong(v, h) Dim x, y, z, delta, t1, t2, vhat, hhat, e, w, fx, fy, b, c, disc, lat, lat2, lon, earthlon, earthlat Dim bi(7) bi(0) = 1.00567724920722457 bi(1) = -0.00344230425560210245 bi(2) = 0.000713971534527667990 bi(3) = -0.0000777240053499279217 bi(4) = 0.00000673180367053244284 bi(5) = -0.000000742595338885741395 bi(6) = 0.0000000905058919926194134 t1 = (V - TRANSV) / RADIUS t2 = (H - TRANSH) / RADIUS vhat = ROTC * t2 - ROTS * t1 hhat = ROTS * t2 + ROTC * t1 e = cos(sqr(vhat * vhat + hhat * hhat)) w = cos(sqr(vhat * vhat + (hhat - 0.4) * (hhat - 0.4))) fx = EY * w - WY * e fy = EX * w - WX * e b = fx * GX + fy * GY c = fx * fx + fy * fy - Q2 disc = b * b - a * c If (disc = 0.0) Then z = b / a x = (GX * z - fx) / Q y = (fy - GY * z) / Q Else delta = sqr(disc) z = (b + delta) / A x = (GX * z - fx) / Q y = (fy - GY * z) / Q If (vhat * ( PX * x + PY * y + PZ * z ) < 0 ) Then z = (b - delta) / A x = (GX * z - FX) / Q y = (fy - GY * z) / Q End If End If lat = Asin(z) lat2 = lat * lat earthlat = 0 Dim i, j For j = Lbound(bi) to Ubound(bi) i = Ubound(bi) - j If i = 0 Then earthlat = (earthlat + bi(i)) * lat Else earthlat = (earthlat + bi(i)) * lat2 End If Next earthlat = earthlat * 180 / M_PI lon = Atan2(x, y) * 180 / M_PI earthlon = lon + 52.0 response.write earthlat & " " & earthlon End Function Function Asin(a) If Abs(a) = 1 Then Asin = a* M_PI/2 Else Asin = Atn(a/sqr(1-a*a)) End If End Function Function Atan2(ys, xs) Dim theta If xs <> 0 Then theta = Atn(ys / xs) If xs < 0 Then theta = theta + M_PI End If Else If ys < 0 Then theta = 3 * M_PI / 2 Else theta = M_PI / 2 End If End If atan2 = theta End Function %>

HOME | DICTIONARY | Know your Moon Sign | Astrological Profile | Daily Horoscope | 2010 Yearly Forecast | Ask a Question | Level 6 | Site Map


Back to content | Back to main menu