Die Geografischen Koordinaten (wie FixFoto sie aus den Exif-Daten ausliest) können in Dezimalkoordinaten (wie z. B. Google Maps sie erwartet) umgerechnet werden.
VBS
'********************************************
'* grad2decimal wandelt ° ' " in dezimal
'********************************************
function grad2decimal(ByVal p_Str)
dim l_Richtung
dim l_Pos
dim l_Wert
dim Gebietsschema
if p_Str<>""then
Gebietsschema = GetLocale ' Gebietsschema des Systems ermitteln
if Gebietsschema <> 2055 and Gebietsschema <> 5127 Then' nicht Schweiz oder Lichtenstein, weil dort auch der Punkt gilt
p_Str=replace(p_Str,".",",",1) ' Punkt durch Komma ersetzen
EndIf
l_Richtung=left(p_Str,1)
p_Str=ltrim(right(p_Str,len(p_Str)-1))
l_Pos=instr(p_Str,"°")
l_Wert=1.0*(left(p_Str,l_Pos-1))
p_Str=ltrim(right(p_Str,len(p_Str)-l_Pos))
l_Pos=instr(p_Str,"'")
l_Wert=l_Wert + (left(p_Str,l_Pos-1))/60
p_Str=ltrim(right(p_Str,len(p_Str)-l_Pos))
l_Pos=instr(p_Str,"""")
l_Wert=l_Wert + (left(p_Str,l_Pos-1))/3600
SelectCase l_Richtung
Case"s", "S", "w", "W"
grad2decimal="-" & replace(FormatNumber(l_Wert,6),",",".",1)
caseElse
grad2decimal=replace(FormatNumber(l_Wert,6),",",".",1)
EndSelectelse
grad2decimal=""endifendfunction
JScript
function grad2decimal(tlat){var dec = parseFloat(tlat.substr(1));
dec += parseFloat(tlat.substr(tlat.indexOf("°")+1))/60;
dec += parseFloat(tlat.substr(tlat.indexOf("'")+1))/3600;if(tlat.charAt(0).toUpperCase()=="S") dec =-dec;if(tlat.charAt(0).toUpperCase()=="W") dec =-dec;return dec;}function decimal2grad(lat,c1,c2){var d,m,s,lats;if(lat<0){ c1=c2; lat=Math.abs(lat);}
d=Math.floor(lat);
m=Math.floor((lat-d)*60);
s=Math.floor(((((lat-d)*60)-m)*60)*100)/100return c1 +d+"°"+m+"\'"+s+"\"";}// Testroutine// Aus Goggle Earth entnommen
Lat_grad ="N52\°54\'29.29\""
Lon_grad ="E10\°35\'58.52\""// hieraus Decimaldarstellung ausrechnen
Lat2_dec = grad2decimal(Lat_grad);
Lon2_dec = grad2decimal(Lon_grad);// und wieder zu Grad zurück
Lat2_grad = decimal2grad(Lat2_dec,"N","S");
Lon2_grad = decimal2grad(Lon2_dec,"E","W");// Anzeigen
ff_MessageBox("Grad\t\t= "+ Lat_grad +" "+ Lon_grad +"\r\n"+"=>Decimal\t= "+ Lat2_dec +" "+ Lon2_dec +"\r\n"+"=>Grad\t\t= "+ Lat2_grad +" "+ Lon2_grad,1);
Konvertierung von Dezimalkoordinaten in Geografische Koordinaten: VBS
'**************************************************
'* decimal2grad wandelt dezimal in ° ' " um
'* erwartet die Dezimalkoordinate und
'* True für Breitengrad bzw. False für Längengrad
'**************************************************
Function decimal2grad (ByVal dezkoord, breite)
Dim Richtung
Dim Grad, Minuten, Sekunden
if breite = trueThen' Breiten
'westliche Breite und südliche Länge haben negativ Dezimalkoordinaten
if InStr(dezkoord,"-") > 0 Then
Richtung = "S"Else
Richtung = "N"EndIfElse' Länge
if InStr(dezkoord,"-") > 0 Then
Richtung = "W"Else
Richtung = "E"EndIfEndIf
dezkoord = Replace(dezkoord,".",",") ' wegen Zahlenformat Punkt durch Komma ersetzen
Grad = Abs(Fix(dezkoord)) ' pos. Ganzzahl ermitteln
Minuten = (Abs(dezkoord)-Grad)*60
Sekunden = (Minuten - Fix(Minuten)) * 60
Minuten = Fix(Minuten)
decimal2grad = Richtung & " " & FormatNumber(Grad,2) & "° " & FormatNumber(Minuten,2) & "' " & FormatNumber(Round(Sekunden,2),2) & Chr(34)
decimal2grad = Replace(decimal2grad,",",".")
EndFunction
z.B. Flugfeld Berlin Tempelhof (Breite: N 52.00° 28.00' 40.75" = 52.477986; Länge: E 13.00° 23.00' 53.60" = 13.398222), Aufruf des Browsers als externes Programm VBS
z.B. Flugfeld Berlin Tempelhof (Breite: N 52.00° 28.00' 40.75" = 52.477986; Länge: E 13.00° 23.00' 53.60" = 13.398222; Hybridkarte, Zoomfaktor 14, mit blauer Markierung A)
GEO-Koordinaten
Die in den Exif-Daten eines Bildes hinterlegten geografischen Koordinaten können ausgelesen werden mit:
Die Geografischen Koordinaten (wie FixFoto sie aus den Exif-Daten ausliest) können in Dezimalkoordinaten (wie z. B. Google Maps sie erwartet) umgerechnet werden.
VBS
JScript
Konvertierung von Dezimalkoordinaten in Geografische Koordinaten:
VBS
Beispiele für Google Maps-Aufrufe
a) dynamische Googe Maps
Syntax: http://www.joerg-buchwitz.de/temp/googlemapssyntax.htmz.B. Flugfeld Berlin Tempelhof (Breite: N 52.00° 28.00' 40.75" = 52.477986; Länge: E 13.00° 23.00' 53.60" = 13.398222), Aufruf des Browsers als externes Programm
VBS
b) Nutzung der Static Maps API
z.B. Flugfeld Berlin Tempelhof (Breite: N 52.00° 28.00' 40.75" = 52.477986; Länge: E 13.00° 23.00' 53.60" = 13.398222; Hybridkarte, Zoomfaktor 14, mit blauer Markierung A)http://maps.google.com/maps/api/staticmap?&size=640x640&maptype=hybrid&markers=color:blue|size:normal|label:A|52.477986,13.398222|52.477986,13.398222|&zoom=14&sensor=false
Der Aufruf der URL im Browser wird unter dem Stichwort "externes Programm" beschrieben.