Convertire una coordinata geografica dal sistema EPSG:4326 WGS 84 al sistema Gradi e Minuti decimali e viceversa
Vai alla navigazione
Vai alla ricerca
Conversione da gradi decimali EPSG:4326 WGS 84 a Gradi e Minuti decimali (GAD)
Nell'esempio che segue convertiremo:
Latitudine: 41.88993
Longitudine: 12.492317
in
Lat: 41°53.396' N
Lon: 12°29.539' E
Public Sub Main() Dim lat As Float = 41.88993 Dim lon As Float = 12.492317 Print "Latitudine (GMD): "; GradiMinuti(lat, "N", "S") Print "Longitudine (GMD): "; GradiMinuti(lon, "E", "W") End Private Function GradiMinuti(coord As Float, posSymbol As String, negSymbol As String) As String Dim segno As String Dim gradi As Integer Dim minutiDecimali As Float ' Determina se è nord/sud o est/ovest: If coord < 0 Then segno = negSymbol coord = -coord Else segno = posSymbol Endif ' Estrae gradi interi: gradi = Int(coord) ' Calcola minuti decimali: minutiDecimali = (coord - gradi) * 60 ' Restituisce stringa nel formato: 41°53.395' N: Return gradi & "°" & Format(minutiDecimali, "0.000") & "' " & segno End
Conversione da gradi e minuti decimali (GMD) a gradi decimali (EPSG:4326 / WGS 84)
Nell'esempio che segue convertiremo:
Lat: 41°53.396' N
Lon: 12°29.539' E
in
Latitudine: 41.88993
Longitudine: 12.492317
Public Sub Main() ' Esempio: Lat 41°53.396' N → 41 + 53.396/60: Dim latGradi As Integer = 41 Dim latMinuti As Float = 53.396 Dim latSegno As String = "N" Dim lonGradi As Integer = 12 Dim lonMinuti As Float = 29.539 Dim lonSegno As String = "E" Dim latDec As Float = GMDToDecimal(latGradi, latMinuti, latSegno) Dim lonDec As Float = GMDToDecimal(lonGradi, lonMinuti, lonSegno) Print "Latitudine (gradi decimali): "; Format(latDec, "0.000000") Print "Longitudine (gradi decimali): "; Format(lonDec, "0.000000") End Private Function GMDToDecimal(gradi As Integer, minuti As Float, segno As String) As Float Dim coord As Float coord = gradi + minuti / 60 ' Inverte il segno per sud/ovest: If segno = "S" Or segno = "W" Then coord = -coord Endif Return coord End