Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

GPS-Daten aus Dateiinformationen auslesen
#1
Hallo zusammen,

zur Abwechslung mal eine Frage von mir. Gibt es eine Möglichkeit, GPS-Daten, die eine Digitalkamera erfasst hat, aus den Dateiinformationen der Fotos auszulesen? Wenn ja, welche. Ich habe ein Excel-Makro, das diverse Informationen ausliest, nur eben die GPS-Daten nicht.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#2
Hallo Klaus-Dieter,

mit WIA (Windows Image Acquisition) geht das recht gut. Ich hoffe, dass ich hier die richtige Version gefunden habe:

Code:
Sub GPS_Read()
'Function GPS_Loc(Fl As String) As String   ' Übergabe eines Pfad & Dateinamens

   Dim Img ' as Imagefile
   Dim GPS(4) As String
   Dim App As Application: Set App = Application
   
   Set Img = CreateObject("WIA.ImageFile")
   
'Ordner auswählen
   With App.FileDialog(msoFileDialogFolderPicker)
       .InitialFileName = "c:\temp"
       If .Show Then Pt = .SelectedItems(1) & "\"
   End With
   
   Fl = Dir(Pt & "*.jpg")
   
Do While Len(Fl)

   Call Img.LoadFile(Pt & Fl)
   
   
   If Img.Properties.Exists("1") Then GPS(0) = Img.Properties("1").Value    'N
       If GPS(0) = "" Then GPS_Loc = "nv": GoTo NN
   If Img.Properties.Exists("2") Then
       For i = 1 To Img.Properties("2").Value.Count
           If Err.Number <> 0 Then GPS_Loc = "error": Err.Clear: GoTo NN
           GPS(1) = GPS(1) & Img.Properties("2").Value.Item(i) & Choose(i, "° ", "' ", "")
       Next i
   End If
   
   If Img.Properties.Exists("3") Then GPS(2) = Img.Properties("3").Value 'W/E
   
   If Img.Properties.Exists("4") Then
       For i = 1 To Img.Properties("4").Value.Count
           GPS(3) = GPS(3) & Img.Properties("4").Value.Item(i) & Choose(i, "° ", "' ", "")
       Next i
   End If
   
   If Img.Properties.Exists("6") Then GPS(4) = Img.Properties("6").Value

   If Len(GPS(1)) > 5 Then
       GPS_Loc = GPS(0) & GPS(1) & ", " & GPS(2) & GPS(3) & ", Höhe: " & Format(GPS(4), "0.00 m")
   Else
       GPS_Loc = "nv"
   End If
   lr = lr + 1
   Cells(lr, 1) = Fl
   Cells(lr, 2).Resize(, 4) = Application.Transpose(Application.Transpose(GPS))
   Erase GPS
NN:
Fl = Dir
Loop
   Set Img = Nothing
   
End Sub

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Klaus-Dieter
Antworten Top
#3
Hallo Fennek,

vielen Dank dafür, funktioniert einwandfrei.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#4
Hallo Klaus-Dieter,

schön, dass es geholfen hat.

mfg

(bist Du neugierig, was der Hersteller so alles in den "MakerNotes" versteckt? WIA kann das gut auslesen, aber die Kodierung / Verschlüsselung zu dekodieren, war zu kompliziert für mich.)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste