Newsgroup: it.comp.os.win.windows10
Titolo: Cercare foto in base alle coordinate

Sapete se c'č un modo per ricercare file jpeg (sul proprio HD/SSD) in
base alla posizione in cui sono scattate?
 
 
-- 
Per contattarmi, togliere -NOSPAM- dall'indirizzo.
To contact me, remove -NOSPAM- from address.

 base alla posizione in cui sono scattate?
 
XNview fa la ricerca per tags EXIF e IPTC, ma non saprei dire se lo fa
anche per coordinate. Anche perché non è una cosa molto semplice: hai
due parametri che potrebbero avere un'alta precisione, in termini di
posizione potrebbero essere anche di pochi centimetri, quindi dovresti
fare una ricerca tipo:
 
   X.XXXX < Longitudine < Y.YYYY
e contemporaneamente una
   X.XXXX < Latitudine < Y.YYYY
 
In alternativa a una ricerca seriale dovresti avere un DB fatto partendo
dai dati estratti con qualcosa tipo ExifTools e fare una query su
quello...
 
Intendiamoci, magari esiste un programma che già lo fa, e io non sono
riuscito a trovarlo :-)
 
Per dire, Picasa fa il contrario: dai tag di posizione ti rintraccia il
punto in cui è stata scattata su Google maps.
 
Bye, G.

 
 
anche faststone
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

riuscito a trovarlo :-)
 
 
Mi sono ricordato che anni fa avevo fatto uno script per cercare info tra i dati
Exif delle immagini di una directory, non lo trovavo più perchè era in un
vecchio portatile, ci avevo provato d'estate in vacanza.
 
L'ho riprovato adesso e funziona, mette tutti i dati Exif in un file Output.txt,
tra cui ci sono anche le coordinate GPS.
 
Naturalmente una volta in possesso dei dati si può fare un'ulteriore
elaborazione, magari una ricerca solo in funzione delle coordinate GPS, ed è
abbastanza semplice fare una ricorsione per lavorare su più directories.
 
Se interessa lo posso modificare.
 
L'ho messo anche qui:
 
https://www.dropbox.com/s/tujphn5il4es5ds/exif.vbs?dl=0
 
 
Basta scaricarlo e cliccarci sopra.
 
Lo metto anche qui sotto, ma la formattazione del newsreader potrebbe aggiungere
degli a capo non richiesti:
 
' _______ exif.vbs ____________
'ESTRAE I DATI EXIF
 
'Option Explicit
'On Error Resume Next
 
 Const ForReading = 1, ForWriting = 2, ForAppending = 8, TemporaryFolder = 2
 
Const   FileCreate          = True
Const   TristateTrue        = -1    'Unicode
 
Dim oShell, iCode, sCurrentFolderName, sOutputFileName
Dim oFS, oFolder, oTS, oImg, oFile
Dim iPos, sExt, sString
 
 
 Const RationalImagePropertyType = 1006    '(&H3EE)
 
 Set oShell = CreateObject( "WScript.Shell" )
 Set Fso	= CreateObject("Scripting.FileSystemObject")
 Set oImg	= CreateObject("WIA.ImageFile")
 Set oV		= CreateObject("WIA.Vector")
 
CurDir	= oShell.CurrentDirectory
oFName	= CurDir & "\output.txt"
 
 Set oFolder     = Fso.GetFolder(CurDir)
 
 Set oTS = Fso.OpenTextFile(oFName, ForWriting, FileCreate, TristateTrue)
 
For Each oFile In oFolder.Files
 
    iPos    = InStrRev(oFile.Name, ".")
    sExt    = Mid(oFile.Name, iPos)
 
    If (LCase(sExt) = ".jpg") Then
N=N+1
	oTS.WriteLine oFile.Name
        sString = TestImage(oFile.Name)
 
'WScript.Echo sString
        If (sString <> "") Then
            oTS.WriteLine sString
        End If
 
    End If
 
Next
oTS.WriteLine I
oTS.Close
 
WScript.Echo "Fine " & N
 
'FUNCTIONS
 
Function TestImage(sFileName)
	oImg.LoadFile sFileName
'On Error Resume Next
    For Each prp In oImg.Properties
        i = i + 1    'Element counter
        With prp
	If InStr(.Name, "Gps") > 0 Then
	    s = .Name & "(" & .PropertyID & ") = "
		If .IsVector Then
			s = s & "[vector]"
			Set v = .Value
	     If .Name = "GpsLatitude" Then
 
                    s = s & FormatCoords(v,
oImg.Properties("GpsLatitudeRef").Value)
	     ElseIf .Name  = "GpsLongitude" Then
                    s = s & FormatCoords(v,
oImg.Properties("GpsLongitudeRef").Value)
 
 
             Else
 
                    For j = 1 To v.Count
                        s = s & v(j) & " "
                    Next
 
             End If
	    Else
                s = s & prp.Value
            End If
            oTS.WriteLine VbTab & i &" "& s
 
            Else
            If .PropertyID <> 20507 And .PropertyID <> 20624 And .PropertyID <>
20625 Then
                If .IsVector = False Then
                    If .Type = RationalImagePropertyType Then
                       oTS.WriteLine VbTab & i &" "& .PropertyID &" "& .Name &"
"& GetWiaImagePropertyType(.Type)&" "& .Value.Numerator & "/" &
.Value.Denominator
                    Else
                       oTS.WriteLine VbTab & i &" "& .PropertyID &" "& .Name &"
"&  GetWiaImagePropertyType(.Type) &" "&  .Value
                    End If
                Else
 
 
                    'Vector objects
                    Set oV = .Value
                    For j = 1 To oV.Count
                        sValue = sValue & oV.Item(j) & " "
                    Next 
                    sValue = Trim(sValue)
                    oTS.WriteLine VbTab & i  &" "& .PropertyID &" "&  .Name &"
"&  GetWiaImagePropertyType(.Type) &" "&  sValue
                End If
                Else
              	  oTS.WriteLine VbTab & i &" - "& .PropertyID &" "& .Name
            End If
	End If
        End With
    Next 
End Function
 
 
Function FormatCoords(v,sRef)
 
    'On Error Resume Next
 
    Dim sCoords
 
    sCoords = v(1) & Chr(176) & v(2) & Chr(39) & v(3) & Chr(34) & sRef
 
    FormatCoords = sCoords
 
End Function
 
'Converts numeric Image Property Type values
Private Function GetWiaImagePropertyType( lType) 
    Select Case lType
        Case 1000
            GetWiaImagePropertyType = "Undefined"
        Case 1001
            GetWiaImagePropertyType = "Byte"
        Case 1002
            GetWiaImagePropertyType = "String"
        Case 1003
            GetWiaImagePropertyType = "Unsigned Integer"
        Case 1004
            GetWiaImagePropertyType = "Long"
        Case 1005
            GetWiaImagePropertyType = "Unsigned Long"
        Case 1006
            GetWiaImagePropertyType = "Rational"
        Case 1007
            GetWiaImagePropertyType = "Unsigned "
        Case 1100
            GetWiaImagePropertyType = "Vector Of Undefined"
        Case 1101
            GetWiaImagePropertyType = "Vector Of Bytes"
        Case 1102
            GetWiaImagePropertyType = "Vector Of Unsigned"
        Case 1103
            GetWiaImagePropertyType = "Vector Of Longs"
        Case 1104
            GetWiaImagePropertyType = "Vector Of UnsignedLongs"
        Case 1105
            GetWiaImagePropertyType = "Vector "
        Case 1106
            GetWiaImagePropertyType = "Vector Of Unsigned "
        Case Else
            GetWiaImagePropertyType = "Unknown Type"
    End Select
End Function
 
'__________________________________________________-
 
 
 
-- 
ciao
  Stefano

 
https://www.dropbox.com/s/tujphn5il4es5ds/exif.vbs?dl=0
 
 
*GRABBED!*
Grazie, ho idea che possa essermi utile :-)
 
Bye, G.

Grazie, ho idea che possa essermi utile :-)
 
Credo che non avrai grossi problemi a modificarlo, in fondo è sempre Basic anche
se non è molto commentato, come tutte le cose fatte un po' al volo.
 
 
-- 
ciao
  Stefano