�@
int LocaPoint2LatLon(double* latidude, double* longitude, char*
locapoint)
{
*latidude = ((double)(
((int)(locapoint[0]) - 65) * 1757600
+((int)(locapoint[1]) - 65) * 67600
+((int)(locapoint[2]) - 48) * 6760
+((int)(locapoint[8]) - 65) * 260
+((int)(locapoint[9]) - 65) * 10
+((int)(locapoint[10]) - 48) )
* 180 / 45697600 -90);
*longitude = ((double)(
((int)(locapoint[4]) - 65) * 1757600
+((int)(locapoint[5]) - 65) * 67600
+((int)(locapoint[6]) - 48) * 6760
+((int)(locapoint[12]) - 65) * 260
+((int)(locapoint[13]) - 65) * 10
+((int)(locapoint[14]) - 48) )
* 360 / 45697600 -180);
return(0);
}
int LatLon2LocaPoint(double* latitude, double* longitude, char* locapoint)
{
double latitude_step = (*latitude +90)/180*45697600;
double longitude_step = (*lonitude + 180)/360*45697600;
locapoint[0] = (char)(latitude_step/1757600%26 + 65);
locapoint[1] = (char)(latitude_step/67600%26 + 65);
locapoint[2] = (char)(latitude_step/6760%10 + 48);
locapoint[3] = '.';
locapoint[4] = (char)(longitude_step/1757600%26 + 65);
locapoint[5] = (char)(longitude_step/67600%26 + 65);
locapoint[6] = (char)(longitude_step/6760%10 + 48);
locapoint[7] = '.';
locapoint[8] = (char)(latitude_step/260%26 + 65);
locapoint[9] = (char)(latitude_step/10%26 + 65);
locapoint[10] = (char)(latitude_step/1%10 + 48);
locapoint[11] = '.';
locapoint[12] = (char)(longitude_step/260%26 + 65);
locapoint[13] = (char)(longitude_step/10%26 + 65);
locapoint[14] = (char)(longitude_step/1%10 + 48);
locapoint[15] = '\0' ;
return (0) ;
}
function LocaPoint2LatLon(locapoint){
var location = new Object();
location.latitude =(
(locapoint.charCodeAt(0)-65)*1757600
+(locapoint.charCodeAt(1)-65)*67600
+(locapoint.charCodeAt(2)-48)*6760
+(locapoint.charCodeAt(8)-65)*260
+(locapoint.charCodeAt(9)-65)*10
+(locapoint.charCodeAt(10)-48)*1
)*180/45697600-90;
location.longitude = (
(locapoint.charCodeAt(4)-65)*1757600
+(locapoint.charCodeAt(5)-65)*67600
+(locapoint.charCodeAt(6)-48)*6760
+(locapoint.charCodeAt(12)-65)*260
+(locapoint.charCodeAt(13)-65)*10
+(locapoint.charCodeAt(14)-48)*1
)*360/45697600-180);
return(location);
}
function LatLon2LocaPoint(location){
var latitude_step = (location.latitude + 90)/180*45697600;
var longitude_step = (location.longitude + 180)/360*45697600;
var locapoint = String.fromCharCode(
latitude_step/1757600%26 + 65,
latitude_step/67600%26 + 65,
latitude_step/6760%10 + 48,
46,
longitude_step/1757600%26 + 65,
longitude_step/67600%26 + 65,
longitude_step/6760%10 + 48,
46,
latitude_step/260%26 + 65,
latitude_step/10%26 + 65,
latitude_step/1%10 + 48,
46,
longitude_step/260%26 + 65,
longitude_step/10%26 + 65,
longitude_step/1%10 + 48
);
return(locapoint);
}
�@
Function LocaPoint2Latitude(ByVal locapoint As String) As Double Dim Lat_10 As Double Lat_10 = CLng(Asc(Mid(locapoint, 1, 1)) - 65) * 1757600 _ + CLng(Asc(Mid(locapoint, 2, 1)) - 65) * 67600 _ + CLng(Mid(locapoint, 3, 1)) * 6760 _ + CLng(Asc(Mid(locapoint, 9, 1)) - 65) * 260 _ + CLng(Asc(Mid(locapoint, 10, 1)) - 65) * 10 _ + CLng(Mid(locapoint, 11, 1)) LocaPoint2Latitude = (Lat_10 * 180 / 45697600) - 90 End Function Function LocaPoint2Longitude(ByVal locapoint As String) As Double Dim Lon_10 As Double Lon_10 = CLng(Asc(Mid(locapoint, 5, 1)) - 65) * 1757600 _ + CLng(Asc(Mid(locapoint, 6, 1)) - 65) * 67600 _ + CLng(Mid(locapoint, 7, 1)) * 6760 _ + CLng(Asc(Mid(locapoint, 13, 1)) - 65) * 260 _ + CLng(Asc(Mid(locapoint, 14, 1)) - 65) * 10 _ + CLng(Mid(locapoint, 15, 1)) LocaPoint2Longitude = (Lon_10 * 360 / 45697600) - 180 End Function
Function LatLon2LocaPoint(ByVal latitude As Double, ByVal longitude As Double) As String Dim Lat_10 As Double Dim Lon_10 As Double Dim Lat_A(6) As Long Dim Lon_A(6) As Long 'for boundary if latitude = 90 then latitude = 89.999998 if longitude = 180 then longitude = 0 '(-90 to 89.999998) -> (0 to 45697600) Lat_10 = CLng((CDbl(latitude) + 90) * 45697600 / 180) '(-180 to 179.999996) -> (0 to 45697600) Lon_10 = CLng((CDbl(longitude) + 180) * 45697600 / 360) Lat_A(6) = Int(Lat_10 / 1757600) Lat_10 = Lat_10 - Lat_A(6) * 1757600 Lat_A(5) = Int(Lat_10 / 67600) Lat_10 = Lat_10 - Lat_A(5) * 67600 Lat_A(4) = Int(Lat_10 / 6760) Lat_10 = Lat_10 - Lat_A(4) * 6760 Lat_A(3) = Int(Lat_10 / 260) Lat_10 = Lat_10 - Lat_A(3) * 260 Lat_A(2) = Int(Lat_10 / 10) Lat_10 = Lat_10 - Lat_A(2) * 10 Lat_A(1) = Int(Lat_10) Lon_A(6) = Int(Lon_10 / 1757600) Lon_10 = Lon_10 - Lon_A(6) * 1757600 Lon_A(5) = Int(Lon_10 / 67600) Lon_10 = Lon_10 - Lon_A(5) * 67600 Lon_A(4) = Int(Lon_10 / 6760) Lon_10 = Lon_10 - Lon_A(4) * 6760 Lon_A(3) = Int(Lon_10 / 260) Lon_10 = Lon_10 - Lon_A(3) * 260 Lon_A(2) = Int(Lon_10 / 10) Lon_10 = Lon_10 - Lon_A(2) * 10 Lon_A(1) = Int(Lon_10) LatLon2LocaPoint = _ Chr(CLng(Lat_A(6) + 65)) & _ Chr(CLng(Lat_A(5) + 65)) & _ Chr(CLng(Lat_A(4) + 48)) & _ "." & _ Chr(CLng(Lon_A(6) + 65)) & _ Chr(CLng(Lon_A(5) + 65)) & _ Chr(CLng(Lon_A(4) + 48)) & _ "." & _ Chr(CLng(Lat_A(3) + 65)) & _ Chr(CLng(Lat_A(2) + 65)) & _ Chr(CLng(Lat_A(1) + 48)) & _ "." & _ Chr(CLng(Lon_A(3) + 65)) & _ Chr(CLng(Lon_A(2) + 65)) & _ Chr(CLng(Lon_A(1) + 48)) End Function
�@
�@