S pretvornikom UTM lahko preprosto pretvorite koordinate UTM v vrednosti zemljepisne širine in dolžine. Univerzalno prečno Mercatorjevo koordinato (UTM) sestavljajo številka območja, vzhod, sever in polobla (N/S).
Prenesi zdaj
Če želite programsko opremo začeti uporabljati čim prej, lahko:
Prenesite programsko opremo zdaj
V nasprotnem primeru, če želite sami, lahko preberete spodnjo vsebino.
Pripravimo GUI
Kot je prikazano na sliki, pustite zgornje 4 vrstice Excelove preglednice za shranjevanje podatkov o zemljevidu, območja in poloble. Te 3 vrednosti bodo uporabljene za vse vrstice v Excelovi preglednici. V vrstici 5, začenši od stolpca A, jih dodajte kot glave.
- DLS_KEY
- RM
- VZHOD
- NIČ
- ZEMLJEPISNA ŠIRINA
- VDOLŽINA
Vrednost v stolpcih od A do stolpcev D je vnos, izhod, tj. zemljepisna širina in dolžina, pa se prikaže v stolpcih E in F
Naj bo funkcionalen
Kopirajte skript v nov modul in pripnite makro na gumb na listu. Prepričajte se, da ima vaša naprava Internet Explorer. Brez IE ta skript ne bo deloval.
Preizkusimo
Ko zaženete makro, lahko preprosto spremljate stanje v vrstici stanja vaše aplikacije Excel. Ker smo med vsako pretvorbo ročno sprožili nekaj premora, si bo makro vzel čas, da pretvori vse vaše koordinate UTM v vrednosti širine in dolžine. Ko so vsi zapisi obdelani, lahko na zaslonu vidite pojavno sporočilo. Če makro ne more shraniti podatkov na liste, je to morda zaradi poškodbe vaše datoteke Excel. Popravite poškodovano datoteko Excel in znova zaženite skript.
Scenarij:
Sub UTM_Converter()
' Place all your declarations here
Dim i As Long
Dim browobject As Object
Dim obj1 As Object
Dim obj2 As Object
Set browobject = CreateObject("InternetExplorer.Application")
browobject.Visible = False
'Process each row in the excle till the macro meets the last used row
For r = 6 To 9
' Navigate to the URL to process data
browobject.navigate "http://www.rcn.montana.edu/resources/converter.aspx"
' Inform Users about the status
Application.StatusBar = "Macro is converting data. Please wait... Now at Row : " & r & " /// Total Rows : " & Sheets("UTM to LAT LON").Range("C" & Rows.Count).End(xlUp).Row
' As this is dynamic, we have to wait for the browobject to process input and generate output
Do While browobject.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Application.Wait (Now() + TimeValue("00:00:02"))
'Lets populate the form
browobject.document.getElementById("mapDatum").Value = "1"
browobject.document.getElementById("utmZone").Value = "14"
browobject.document.getElementById("utmHemi").Value = "N"
'utmEasting
browobject.document.getElementById("utmEasting").Value = Sheets("UTM to LAT LON").Range("C" & r).Value
'utmNorthing
browobject.document.getElementById("utmNorthing").Value = Sheets("UTM to LAT LON").Range("D" & r).Value
Set obj2 = browobject.document.getElementsByTagName("input")
v_length = 0
While v_length < obj2.Length
If obj2(v_length).Value = "Convert Standard UTM" Then
GoTo comehere
End If
v_length = v_length + 1
Wend
comehere:
obj2(v_length).Click
' Wait while browobject loading...
Do While browobject.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Application.Wait (Now() + TimeValue("00:00:02"))
'Show converted data on the sheet
Sheets("UTM to LAT LON").Range("F" & r).Value = browobject.document.getElementById("decimalLongitude").Value
Sheets("UTM to LAT LON").Range("E" & r).Value = browobject.document.getElementById("decimalLatitude").Value
Next r
' Show browobject
browobject.Visible = False
browobject.Quit
' Clean up
Set browobject = Nothing
Set obj1 = Nothing
Set obj2 = Nothing
Application.StatusBar = ""
'Inform User that entire process was completed
MsgBox "Converted !", vbInformation, "UTM to LAT LON converter v1.0"
End Sub
Uvod avtorja:
Nick Vipond je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z datoteka popravila in obeti za obnovitev programske opreme. Za več informacij obiščite www.datanumen.com


