之前有寫一點工作上自用的小程式,用MS的PPC程式編譯器寫得很灰心,
後來掏CoCo買了一套MobileVB,寫來順手多了,這套程式編輯器直接掛在
VB 6.0下,只要是會VB的人很快就能上手,現在提供原始碼,讓有興趣的人
去修改,不過要先去AppForge網站下載編譯程式才能把專案打開做修改.
程式碼下載:http://attach.mobile01.com/attach/200406/mobile01-ffc5aab1162f4bf6e78a5564179accd9.zip
轉換,可是我看不懂.只好用4參數轉換法.
引用這個程式碼無版權問題,都讓你DownLoad,不用介意版權了其實只要會VB的人
就可照著寫出來.
用MS的eVB也可以修改,那個"確定"按鈕的click程式碼如下:
Private Sub Button1_Click()
On Error Resume Next
'X_Factor = 0.00001549
'Y_Factor = 0.000006521
Select Case UCase(Mid(Pole(0).Text, 1, 1))
Case "J", "M", "P"
XX = 90000
Case "A", "D", "G", "K", "N", "Q", "T", "V"
XX = 170000
Case "B", "E", "H", "L", "O", "R", "U", "W"
XX = 250000
Case "C", "F"
XX = 330000
End Select
Select Case UCase(Mid(Pole(0).Text, 1, 1))
Case "A", "B", "C"
YY = 2750000
Case "D", "E", "F"
YY = 2700000
Case "G", "H"
YY = 2650000
Case "J", "K", "L"
YY = 2600000
Case "M", "N", "O"
YY = 2550000
Case "P", "Q", "R"
YY = 2500000
Case "T", "U"
YY = 2450000
Case "V", "W"
YY = 2400000
End Select
If Len(Pole(1).Text) > 4 Then '如果第2組編號有個位數的數值 , 例 AH0012
a = CLng(Mid(Pole(1).Text, 5, 1))
b = CLng(Mid(Pole(1).Text, 6, 1))
Else '如果第2組編號沒有個位數的數值 , 例 AH00
a = 0
b = 0
End If
'算出TM2座標
lblTM2X.Caption = XX + CLng(Mid(Pole(0).Text, 2, 2)) * 800 + _
(Asc(UCase(Mid(Pole(1).Text, 1, 1))) - 65) * 100 + _
CLng(Mid(Pole(1).Text, 3, 1)) * 10 + a ' A 的 ASC值為 65
lblTM2Y.Caption = YY + CLng(Mid(Pole(0).Text, 4, 2)) * 500 + _
(Asc(UCase(Mid(Pole(1).Text, 2, 1))) - 65) * 100 + _
CLng(Mid(Pole(1).Text, 4, 1)) * 10 + b
'轉換TM2為TWD67的經緯度
X67 = CDbl(lblTM2X.Caption)
Y67 = CDbl(lblTM2Y.Caption)
EE = 121 + (X67 - 250000) / 101745.445
NN = 24 + (Y67 - 2655032.3) / 110754.8256
E_Deg = Int(EE): lbl67E(0).Caption = E_Deg
N_Deg = Int(NN): lbl67N(0).Caption = N_Deg
EE = EE - E_Deg
NN = NN - N_Deg
E_Min = Int(EE * 60): lbl67E(1).Caption = E_Min
N_Min = Int(NN * 60): lbl67N(1).Caption = N_Min
EE = EE * 60 - E_Min
NN = NN * 60 - N_Min
E_Sec = Round((EE * 60), 1): lbl67E(2).Caption = E_Sec
N_Sec = Round((NN * 60), 1): lbl67N(2).Caption = N_Sec
''轉換TWD67為TWD97的經緯度
X97 = X67 + 807.8 + X_Factor * X67 + Y_Factor * Y67
Y97 = Y67 - 248.6 + X_Factor * Y67 + Y_Factor * X67
EE = 121 + (X97 - 250000) / 101745.445
NN = 24 + (Y97 - 2655032.3) / 110754.8256
E_Deg = Int(EE): lbl97E(0).Caption = E_Deg
N_Deg = Int(NN): lbl97N(0).Caption = N_Deg
EE = EE - E_Deg
NN = NN - N_Deg
E_Min = Int(EE * 60): lbl97E(1).Caption = E_Min
N_Min = Int(NN * 60): lbl97N(1).Caption = N_Min
EE = EE * 60 - E_Min
NN = NN * 60 - N_Min
E_Sec = Round((EE * 60), 1): lbl97E(2).Caption = E_Sec
N_Sec = Round((NN * 60), 1): lbl97N(2).Caption = N_Sec
End Sub
把這一段剪下,貼到eVB就OK了.
內文搜尋

X