AppleScript: obtener datos de ubicación de la imagen

Estoy tratando de escribir un script de Automator que implica, entre otras cosas, obtener los datos de ubicación GPS de una imagen. Este será un servicio de búsqueda.

Por lo que he podido descubrir hasta ahora, implica ejecutar AppleScript y hablar con la Image Eventsaplicación sin interfaz.

A partir de aquí, ¿cómo obtengo realmente la latitud y la longitud de la imagen?

Sé que hay aplicaciones que pueden leer estos datos, incluso en la línea de comandos, pero me preguntaba si estaba disponible para MacOS sin agregar nada.

No creo que Image Events pueda obtener ese tipo de metadatos de la foto, sin embargo, mdlspuede hacerlo, mdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photopor ejemplo, todo depende de qué es exactamente lo que intenta hacer con esta información. Personalmente prefiero usar exiftoolsin embargo tendrías que instalarlo. Si proporcionara más información sobre lo que está tratando de hacer y fuera un poco más explícito y específico, sería más fácil escribir y responder.
@user3439894 Se ve bien. ¿Puedes cambiar tu comentario en una respuesta para que pueda aceptarlo?
Sin embargo, puedo, ¿necesita información adicional o está bien con lo que he dicho?
@ user3439894 Tu comentario respondió a la pregunta que hice, por lo que debería ser suficiente. Sin embargo, si sabe cómo usar la -nullMarkeropción (no parece funcionar para mí, incluso cuando uso la rawopción), o si hay una alternativa para los archivos RAW, eso sería una ventaja. De lo contrario, es bueno.

Respuestas (1)

No creo que Image Events pueda obtener ese tipo de metadatos de la foto, sin embargo, mdlspuede hacerlo, mdls -name kMDItemLatitude -name kMDItemLongitude /path/to/photopor ejemplo, todo depende de qué es exactamente lo que intenta hacer con esta información. Personalmente prefiero usar exiftoolsin embargo tendrías que instalarlo.

Para responder a la pregunta en su comentario:

Si consulta un attributeNamecuando usa -rawy attributeNameno existe, la salida es literalmente (null)y si quiere que sea otra cosa, entonces use −nullMarker markerString, por ejemplo:−nullMarker "Does Not Exist"

mdls -name kMDItemFake -raw -nullMarker "Does Not Exist" /path/to/photo

En el ejemplo, el comando anterior kMDItemFakees un kMDItemelemento falso, por lo que el comando generará: Does Not Existen lugar de (null).

En otras palabras, si, como ejemplo, la foto no tiene kMDItemLatitudeinformación y la consulta, el resultado será (null)cuando use mdls -name kMDItemLatitude -raw. Para cambiar eso, usa −nullMarker markerString.

Si a kMDItemno existe y no desea ningún resultado al usarlo, mdls -name attar -rawentonces use mdls -name attar -raw −nullMarker '' /path/to/photo.

Gracias por tu respuesta. Tengo una pregunta relacionada: apple.stackexchange.com/questions/271289/… para la cual podría tener alguna idea.