1- Dạng
tọa độ thập phân trên Google Maps:
Ta nhấn một điểm bất kỳ trên Google Maps, kết quả thông báo
là một chuỗi gồm 2 nhóm số thập phân cách nhau bởi dấu phẩy và space, vd:
14.123456, -102.056789
Nhóm số trước là vĩ độ, sau là kinh độ.
Vĩ độ hay kinh độ đều viết dạng như nhau nhưng kinh độ có thể
dài hơn. Mỗi nhóm số được đặc trưng bởi 4 phần, ví dụ:
-102.056789
* Phần ký tự đầu tiên là dấu -
nếu vĩ độ thuộc bán cầu nam, hoặc kinh độ thuộc bán cầu tây. Thuộc bán cầu bắc
hay bán cầu đông sẽ không có dấu -
* Phần số trước chấm là
phần nguyên của số. Vĩ độ gồm từ 1 đến 2 ký tự. Kinh độ từ 1 đến 3 ký tự.
* Dấu chấm . bắt buộc phải có
tách phần lẽ thập phân phía sau
* Phần lẽ gồm 6 số thập phân, có thể ít hơn.
2- Dạng
tọa độ trên Google Earth với độ - phút - giây:
42°55'34.87''
S 124°45'17.77'' E
* Phần ghi độ: là 1 đến 2 ký tự của vĩ độ, 1 đến 3
ký tự của kinh độ, buộc kèm ký hiệu độ °. Nút xanh cuối góc phải: nhấn để điền ký hiệu độ °
*
Phần ghi phút: là 2 ký tự, buộc kèm ký hiệu phút '
* Phần ghi giây: là 2 ký tự số nguyên của giây, dấu chấm
. tiếp là
2 ký tự phần lẽ thập phân của giây, buộc kèm ký hiệu giây ''
=>
Các số độ, phút và giây viết dính liền nhau. Sau đó có space và tiếp đến là chữ
Hoa N hay S cho
vĩ độ bắc hay nam bán cầu, hoặc chữ Hoa E
hay W cho kinh độ đông hay tây (với đường
Greenwich)
3- Phần mềm tính khoảng cách
theo tọa độ
Download:
3a-
Chức năng tính khoảng cách:
Các
nút Clear để xóa dữ liệu ở ô cùng màu bên dưới. Để nhanh, bạn copy tọa độ từ Google
Maps và nhấn nút Paste để đưa dữ liệu vào.
Bạn
cũng có thể gõ trực tiếp các số liệu, khi gõ: màu chữ là màu đỏ vì chưa đúng định
dạng, cho đến khi bạn gõ số liệu chính xác, màu chữ tự động thành đen.
Sau
khi có tọa độ điểm đầu và điểm cuối, nhấn nút dài "Tính khoang
cách…", kết quả hiện lên, như trong hình là 17458.6m
3b-
Chức năng chuyển đổi độ-phút-giây ra số thập phân và ngược lại.
* Ô
dài màu lục non bên trái tự động chuyển đổi tọa độ từ dạng thập phân, ra dạng độ-phút-giây
kề dưới.
* Ô
dài màu xanh nhạt bên phải tự động chuyển đổi tọa độ từ dạng độ-phút-giây thành
dạng thập phân ở ô lục đậm kề trên.
Khi
gõ, chữ màu đỏ. Bạn gõ đúng số liệu theo định dạng, màu chữ thành đen và tự
chuyển đổi.
Nút
xanh cuối góc phải: nhấn để điền ký hiệu độ °
4- Dành cho các bạn thích
VB6
4a-
RegEx (Regular Expressions)
* Mẫu
lọc tọa độ dạng số thập phân:
"^(-?)([\d]|[1-8][\d]).([\d]{3,})(,
)(-?)([\d]|[1-9][\d]|1[0-7][\d]).([\d]{3,})$"
* Mẫu
lọc tọa độ dạng độ-phút-giây-lẽ thập phân và N, S, E, W:
"^([\d]|[1-8][\d])°([0-5][\d])'([0-5][\d].[\d]{2})''(
[NS] )([\d]|[1-9][\d]|1[0-7][\d])°([0-5][\d])'([0-5][\d].[\d]{2})''(
[EW])$"
4b-
Các Function:
*
Function chuyển thập phân ra độ-phút-giây:
Public Function DeciToDMS_dec(ByVal Deci As String) As String
On Error Resume Next
''Ex: Deci = -13.345678, -167.789012
Dim stemp$, lso#,
MM$()
Dim NS As String * 1,
EW As String * 1
'''truongphu - camduc - camlam - khanhhoa
stemp = Trim(Deci)
MM = Split(stemp,
", ")
If Left(MM(0), 1) =
"-" Then NS = "S" Else NS = "N"
If Left(MM(1), 1) =
"-" Then EW = "W" Else EW = "E"
lso = Abs(CDbl(MM(0)))
' lây sô duong
stemp = Int(lso) &
"°" ' lây phân nguyên
lso = lso - Int(lso)
'lây phân thâp phân
lso = lso * 60 'nhân
60
stemp = stemp &
Format(Int(lso), "00") & "'" ' Format lây phân nguyên
luôn là 2 sô
lso = lso - Int(lso)
'lây phân thâp phân
lso = lso * 60
stemp = stemp &
Format(lso, "00.00") & "''" & " " &
NS & " "
lso = Abs(CDbl(MM(1)))
' lây sô duong
stemp = stemp &
Int(lso) & "°" ' lây phân nguyên
lso = lso - Int(lso)
'lây phân thâp phân
lso = lso * 60
stemp = stemp &
Format(Int(lso), "00") & "'" ' Format lây phân nguyên
luôn là 2 sô
lso = lso - Int(lso)
lso = lso * 60
stemp = stemp &
Format(lso, "00.00") & "''" & " " &
EW
DeciToDMS_dec = stemp
End Function
*
Function độ-phút-giây ra thập phân:
Public Function DMS_decToDeci(ByVal DegMinSec As String) As
String
On Error Resume Next
''Ex: DegMinSec = 17°33'12.63'' N 103°47'52.85'' E
Dim stemp$, MM$(),
VV$(), KK$()
stemp =
Replace(DegMinSec, " ", "
")
stemp = Trim(stemp)
MM = Split(stemp,
" ")
stemp = Replace(MM(0),
"''", "")
stemp = Replace(stemp,
"'", "°")
VV = Split(stemp,
"°")
'''truongphu - camduc - camlam - khanhhoa
stemp = Replace(MM(2),
"''", "")
stemp = Replace(stemp,
"'", "°")
KK = Split(stemp,
"°")
If MM(1) =
"S" Then stemp = "-"
stemp = stemp &
Format(CDbl(VV(0)) + (CDbl(VV(1)) + CDbl(VV(2)) / 60#) / 60#,
"#.000000")
If MM(3) = "W"
Then stemp = stemp & ", -" Else stemp = stemp & ",
"
stemp = stemp &
Format(CDbl(KK(0)) + (CDbl(KK(1)) + CDbl(KK(2)) / 60#) / 60#,
"#.000000")
DMS_decToDeci = stemp
End Function
*
Function đổi độ thành Radian
Public Function Rads(ByVal Degree As Single) As Single
Const PI = 3.1416
Rads = Degree / 180 *
PI ' Ðôi Ðô thành Radian
End Function