Benutzer-Werkzeuge

Webseiten-Werkzeuge


geo-koordinaten

Dies ist eine alte Version des Dokuments!


GEO-Koordinaten


Die in den Exif-Daten eines Bildes hinterlegten geografischen Koordinaten können ausgelesen werden mit:
Laengengrad = FF_GetExifTag("Longitude") Breitengrad = FF_GetExifTag("Latitude")
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
      End If
      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
      Select Case l_Richtung
          Case "s", "S", "w", "W"
              grad2decimal="-" & replace(FormatNumber(l_Wert,6),",",".",1)
          case Else
              grad2decimal=replace(FormatNumber(l_Wert,6),",",".",1)
      End Select
  else
      grad2decimal=""
  end if

end function

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.floor1)

1)
lat-d) *60); s=Math.floor(((((lat-d) 60)-m)60)*100)/100 return 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 = true Then            ' Breiten
      'westliche Breite und südliche Länge haben negativ Dezimalkoordinaten
      if InStr(dezkoord,"-") > 0 Then
          Richtung = "S"
      Else
          Richtung = "N"
      End If
  Else                    ' Länge
      if InStr(dezkoord,"-") > 0 Then
          Richtung = "W"
      Else
          Richtung = "E"
      End If
  End If
  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,",",".")
End Function

===== Beispiele für Google Maps-Aufrufe ===== === a) dynamische Googe Maps === Syntax: http://www.joerg-buchwitz.de/temp/googlemapssyntax.htm

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
BreiteGeo = "52.477986" LaengeGeo = "13.398222" URL = "http://maps.google.de/?q=" & BreiteGeo & "," & LaengeGeo Dim oWSHShell Set oWSHShell = CreateObject("WScript.Shell") oWSHShell.Run URL
=== 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.
geo-koordinaten.1385370342.txt.gz · Zuletzt geändert: (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki