A PARTIR DEL 21 DE NOVIEMBRE DE 2023, LA CORRECCIÓN DEL MAPA DOCUMENTADA A CONTINUACIÓN YA NO FUNCIONA
Consulte el número 41 para conocer el estado actual.
A partir del 1 de diciembre de 2018, la funcionalidad Mapa en las versiones sin suscripción de Lightroom dejó de funcionar. Adobe sugiere comprar una suscripción a Lightroom CC (120 USD/año) o copiar y pegar coordenadas GPS en su motor de búsqueda favorito (¡LOL!).
Este proyecto resucita la funcionalidad perdida, sin necesidad de suscribirse a Lightroom CC.
Para lograr esto, modificaremos Lightroom para usar nuestra propia clave API de Google Maps en lugar de la de Adobe. Si bien necesitamos una suscripción a Google, esa suscripción incluye 200 USD de créditos de uso gratuito por mes, lo que debería ser suficiente para los usuarios ocasionales del módulo Lightroom Map.
Este procedimiento requiere conocimientos de TI de nivel medio a avanzado. ¡Los errores pueden dañar la instalación de Lightroom! Si no sabe lo que está haciendo, solicite ayuda a la persona de soporte de TI designada. ¡NO somos su persona de soporte de TI!
Mantenga en secreto su clave API de Google Maps
No proteger su clave API de Google Maps puede generar cargos inesperados en su cuenta de Google Cloud.
¡GARANTÍA ANULADA! NO somos responsables de dañar la instalación de Lightroom. NO somos responsables de ningún cargo en su cuenta de Google Cloud.
Este procedimiento fue desarrollado y probado con Lightroom 6.14 en Windows 10.
Los usuarios informaron que esto también funciona con:
Actualmente, el parche NO funciona con Lightroom 5.x (número 8) o Lightroom 7.x (número 10). Háganos saber si logra algún progreso en estas versiones comentando en los problemas abiertos.
¡Muchas gracias! ¡A todos los que contribuyeron con su investigación y comentarios!
Debe crear su clave API personal de Google Maps para reemplazar la de Adobe.
La primera sección de esta guía le guiará a través del proceso. Si aún no tiene una cuenta en Google Cloud, esto también incluirá la creación de la cuenta y el ingreso de los detalles de facturación.
Vaya a API y servicios > Biblioteca y filtre por Categoría > Mapas.
Seleccione las siguientes API y haga clic en Habilitar:
Como Lightroom solo llama a dos API, restrinja la clave API de Google Maps a los servicios necesarios para limitar el riesgo de abuso.
Los créditos de uso gratuito mensual de Google Cloud deberían ser suficientes para el uso ocasional del módulo Lightroom Map. Para evitar sorpresas, conviene fijar presupuestos o cuotas. Los presupuestos enviarán una alerta por correo electrónico cuando se exceda una cantidad configurada, mientras que las cuotas desactivarán la API.
Recomendamos configurar un presupuesto de 1 USD y una primera alerta al 10%. Con esta configuración, Google te enviará un correo electrónico si gastas más de 10 céntimos de tu propio dinero.
Si Lightroom todavía se está ejecutando, ciérrelo ahora.
Localice los archivos de la aplicación de Lightroom y busque un archivo llamado Location.lrmodule
. Este es el módulo Mapa de Lightroom. Haga una copia de seguridad de este archivo y guárdela en un lugar seguro.
La ubicación y el nombre del archivo pueden variar según el sistema operativo y la versión de Lightroom.
C:Program FilesAdobeLightroomLocation.lrmodule
/Applications/Adobe Lightroom/Adobe Lightroom.app
, haga clic derecho y seleccione Mostrar contenido del paquete . El módulo Mapa es /Contents/PlugIns/Location.agmodule
.NOTA IMPORTANTE: Si deja la copia de seguridad en la carpeta original, se debe cambiar la extensión del archivo (por ejemplo, de Location.lrmodule a Location.lrmodule_bak). De lo contrario, es posible que Lightroom lo recoja en lugar del archivo parcheado.
En Windows, use Resource Hacker para extraer los recursos de Lua que necesitamos parchear:
Location.lrmodule
con Resource HackerLUA
LOCATIONMAPVIEW.LUA
, haga clic derecho y seleccione guardar recurso binAGREVERSEGEOCODESERVICE.LUA
, haga clic derecho y seleccione guardar recurso binLOCATIONDEBUGPANEL.LUA
, haga clic derecho y seleccione guardar recurso bin En Mac, se puede acceder directamente a los archivos Lua dentro de Location.agmodule
:
Location.agmodel
y seleccione Mostrar contenido del paquete/Contents/Resources/
LocationMapView.lua
, AgReverseGeocodeService.lua
y LocationDebugPanel.lua
a la ubicación deseada para aplicar el parche.Si aún no lo has hecho, instala Python 3.
El script Python patchluastr.py suministrado con este proyecto le permite reemplazar ciertas cadenas en archivos Lua.
Para LocationMapView y AgReverseGeocodeService, utilice el script de Python patchluastr.py para reemplazar la clave de Adobe con su clave API personal de Google Maps:
.bin
; de lo contrario, Resource Hacker no lo encontrará en el siguiente paso. Ejecute patchluastr.py
de la siguiente manera, reemplazando {your-api-key}
con su clave API de Google (sin llaves): patchluastr.py LOCATIONMAPVIEW.LUA "client=gme-adobesystems" "key={your-api-key}" -o LOCATIONMAPVIEW.tmp
patchluastr.py LOCATIONMAPVIEW.tmp "3.12" "3.51" -o LOCATIONMAPVIEW.bin
patchluastr.py AGREVERSEGEOCODESERVICE.LUA "client=gme-adobesystems" "key={your-api-key}" -o AGREVERSEGEOCODESERVICE.bin
orignal-name.lua.bak
. Luego ejecute patchluastr.py
de la siguiente manera, reemplazando {your-api-key}
con su clave API de Google (sin llaves): patchluastr.py LocationMapView.lua.bak "client=gme-adobesystems" "key={your-api-key}" -o LocationMapView.lua.tmp
patchluastr.py LocationMapView.lua.tmp "3.12" "3.51" -o LocationMapView.lua
patchluastr.py AgReverseGeocodeService.lua.bak "client=gme-adobesystems" "key={your-api-key}" -o AgReverseGeocodeService.lua
Con el archivo LocationDebugPanel, use el script Python patchluastr.py para deshabilitar la verificación de firma:
patchluastr.py LOCATIONDEBUGPANEL.LUA "nature" "street" -o LOCATIONDEBUGPANEL.bin
patchluastr.py LocationDebugPanel.lua.bak "nature" "street" -o LocationDebugPanel.lua
Si la ejecución de patchluastr.py falla con un error como, por ejemplo, TypeError: unsupported operand type(s)
, asegúrese de tener Python 3 instalado. Si tiene varias versiones de Python instaladas, puede ejecutar explícitamente el script con Python 3 anteponiendo el comando con python3
:
python3 patchluastr.py {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.lua
Experimental : para los usuarios de Windows que no desean instalar Python, puse a disposición una versión ejecutable de patchluastr
aquí, que no requiere instalar Python. La línea de comando es:
patchluastr.exe {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.bin
Nota : algunos usuarios informan que necesitan parches adicionales. Si no puede hacer que el mapa funcione o el mapa deja de funcionar, consulte el número 12 y el número 19. No vimos este problema en los EE. UU., por lo que puede depender de su país.
En Windows, utilice Resource Hacker para reemplazar los recursos de Lua con su versión parcheada.
Location.lrmodule
con Resource HackerLUA
LOCATIONMAPVIEW.LUA
, haga clic derecho y seleccione Reemplazar recurso , luego haga clic en Seleccionar archivo y navegue hasta la versión parcheada de este recurso. Luego haga clic en ReemplazarAGREVERSEGEOCODESERVICE.LUA
haga clic derecho y seleccione Reemplazar recurso , luego haga clic en Seleccionar archivo y navegue hasta la versión parcheada de este recurso. Luego haga clic en Reemplazar .LOCATIONDEBUGPANEL.LUA
haga clic derecho y seleccione Reemplazar recurso , luego haga clic en Seleccionar archivo y navegue hasta la versión parcheada de este recurso. Luego haga clic en ReemplazarLocation.lrmodule
. Dependiendo de los permisos, es posible que deba usar Guardar como y luego copiar el archivo modificado nuevamente en C:Program FilesAdobeLightroom
En Mac, copie los archivos Lua parcheados nuevamente en /Applications/Adobe Lightroom/Adobe Lightroom.app/Contents/PlugIns/Location.agmodule/Contents/Resources/
, sobrescribiendo los archivos originales.
El módulo Mapa de su instalación de Lightroom ahora vuelve a funcionar.
Si no habilitó la API de codificación geográfica, verá brevemente mensajes de error. Sin embargo, la funcionalidad básica de mapa y etiquetado geográfico seguirá funcionando. (Nota: algunos usuarios informan que el módulo de mapa no funcionó para ellos a menos que la API de codificación geográfica esté activada)
¡Asegúrate de tener una copia de seguridad de Locations.lrmodule antes de jugar con ellos!
Los ejemplos siguientes utilizan archivos de parche, que se pueden encontrar en la carpeta hacks
. Si aún no lo has hecho, te recomendamos clonar o descargar el proyecto completo desde Github, por ejemplo haciendo clic en el botón verde en la parte superior derecha de esta página.
Nota: La mayoría de estos trucos se basan en la API de Google Maps y, por lo tanto, aún requieren corregir primero la clave de la API de Google Maps.
Este parche reemplaza el estilo del mapa "Light" con OpenStreeMap.
Después de parchear la clave API, ejecute:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/osm.patch -o LOCATIONMAPVIEW-osm.bin
Ahora use LOCATIONMAPVIEW-osm.bin
con Resource Hacker en lugar de LOCATIONMAPVIEW.bin
y luego OpenStreetMap estará disponible como estilo de mapa "Light".
Crédito por el truco: @pbb72
Esto es bastante radical; Si habilitamos StreetView, ¡podremos ver los pines de nuestro mapa en 3-D! No es muy preciso, pero es genial.
Ya existe un código en el archivo de Lightroom para habilitar StreetView, por lo que aparentemente Adobe ha estado trabajando en ello, pero tal vez lo desactivó porque no era lo suficientemente bueno.
Para habilitar esta característica oculta, ejecute:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/streetview.patch -o LOCATIONMAPVIEW-sv.bin
Crédito por el truco y la captura de pantalla: @pbb72
Algunos lugares de la Tierra ofrecen fotografías aéreas con una perspectiva diagonal (en lugar de una vista de arriba hacia abajo). Nota: estas fotos no son muy precisas.
Para habilitar este control, ejecute:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/tiltmap.patch -o LOCATIONMAPVIEW-tilt.bin
Con este parche, aparecerán nuevos controles en la parte inferior derecha si los datos están disponibles para la ubicación actual. Es posible que tengas que hacer zoom para que aparezca el control.
Crédito por el truco: @pbb72
No podemos agregar más mapas al selector de estilos de mapas de Lightroom (creemos). Pero, afortunadamente, Google Maps ofrece su propio selector de estilos de mapas, que sólo debemos habilitar.
Una vez habilitado, podemos agregar nuestras propias entradas al menú desplegable. Consulte los comentarios dentro del archivo de parche para obtener más información.
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/mapselector.patch -o LOCATIONMAPVIEW-sel.bin
Crédito por el truco: @pbb72
Este parche muestra mensajes de error y depuración de JavaScript en una ventana debajo del mapa, lo que será muy útil al desarrollar más trucos. Probablemente no quieras que esto esté habilitado permanentemente, así que haz una copia de seguridad del módulo Ubicaciones antes de aplicar este truco.
Ejecute el script hacks/jsconsole.patch:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/jsconsole.patch -o LOCATIONMAPVIEW-con.bin
El guión hace lo siguiente:
¡Ahora disfrute de mensajes de error realmente legibles!
Crédito por el truco y la captura de pantalla: @pbb72
A principios de 2018, Google renovó el modelo de precios para incorporar Google Maps en aplicaciones de terceros, pasando del acceso gratuito o tarifas fijas a precios basados en transacciones. Se cuenta la cantidad de solicitudes a las API de Google Maps y, después de un umbral, se cobra una pequeña tarifa por cada solicitud.
El nuevo precio de Google no es compatible con productos con licencia perpetua. Con Lightroom clásico, Adobe solo recibía dinero una vez, pero tendría que pagarle a Google cada vez que usaba el módulo Mapa. Para Adobe, este no es un modelo de negocio sostenible.
La clave API de Google Maps integrada en versiones anteriores de Adobe Lightroom expiró el 30 de noviembre de 2018.
La API JavaScript de Google Maps permite integrar Google Maps en sitios web y aplicaciones.
A diciembre de 2018, la API JavaScript de Google Maps cuesta 0,007 USD por carga de mapa (7 USD/1000). Una vez que se carga un mapa, las interacciones del usuario con el mapa, como desplazarse, hacer zoom o cambiar las capas del mapa, no generan cargas de mapas adicionales.
Además, a partir de marzo de 2023, la versión de la API solicitada por Lightroom quedó obsoleta, lo que provocó que Lightroom cargara una versión incompatible, rompiendo la funcionalidad de los mapas.
El módulo Lightroom Map llama a la API de JavaScript de Maps para mostrar el mapa dentro de Lightroom. Se requiere acceso a esta API para que el módulo Mapa funcione.
El acceso a esta API se implementa en el recurso de Lua LOCATIONMAPVIEW.LUA.
La API de codificación geográfica de Google permite que las aplicaciones busquen ubicaciones y nombres de lugares basados en coordenadas GPS.
A partir de diciembre de 2018, la API de codificación geográfica de Google cuesta 0,005 USD por solicitud (5 USD/1000).
El módulo Lightroom Map llama a la API de codificación geográfica para mostrar el nombre del lugar de la imagen seleccionada actualmente y al buscar una ubicación. El módulo de mapas funciona sin acceso a esta API, pero mostrará brevemente un mensaje de error al ingresar al módulo de mapas y al cambiar entre imágenes.
Observamos múltiples llamadas a la API de codificación geográfica al ingresar al módulo Mapa. Tampoco sabemos qué otras operaciones crearán llamadas a esta API. Recomendamos estar atento a los informes de uso disponibles en Google Cloud Platform. En caso de duda o si es demasiado costoso, deshabilite el acceso a la API de codificación geográfica eliminando el servicio de las restricciones de API en API y servicios > Credenciales.
El acceso a esta API se implementa en el recurso Lua AGREVERSEGEOCODESERVICE.LUA.
Para la codificación geográfica inversa (agregar el nombre de la ubicación a los metadatos de la imagen en función de coordenadas conocidas), Lightroom accede a la API de Google con la signature
del parámetro de consulta que parece calcularse en función de la clave API (vencida) de Adobe y su clave de licencia de Lightroom. La llamada API ofensiva se ve así:
http://maps.google.com/maps/api/geocode/json?key=[api-key]&language=EN&channel=lightroom-6.14&latlng=[coordinates-of-my-photo]&signature=[string-of-characters]
Afortunadamente para nosotros, aunque la API de Google niega el acceso con una firma caducada, la API funciona si se elimina signature=[string-of-characters]
de la URL o cuando signature
se reemplaza con un nombre de parámetro desconocido. Desafortunadamente, la signature
de cadena no existe en ningún archivo Lua.
Resulta que la funcionalidad se oculta al dividir cadenas. La firma se calcula en LocationDebugPanel.lua
y la nature
de la cadena en ese archivo es parte del nombre del parámetro signature
. Reemplazar nature
con street
cambiará la llamada API a:
http://maps.google.com/maps/api/geocode/json?key=[api-key]&language=EN&channel=lightroom-6.14&latlng=[coordinates-of-my-photo]&sigstreet=[string-of-characters]
que Google acepta felizmente.
A partir de 2018, Google requiere una cuenta en Google Cloud Platform que esté habilitada para la facturación. Todas las transacciones de la API de Google Maps se cargan en esa cuenta. Por suerte para nosotros, Google otorga a cada cuenta un crédito mensual de 200 USD. Sólo las transacciones que excedan ese límite se facturarán a su tarjeta de crédito.
Los costos y términos de servicio pueden diferir según el país. Revise atentamente los detalles en el sitio web de Google.
200 USD son suficientes para más de 28.000 cargas de mapas o 40.000 llamadas a la API Geo Coding, lo que debería ser suficiente para un uso ocasional del módulo Lightroom Map. Para evitar sorpresas, puedes establecer presupuestos o cuotas. Los presupuestos enviarán una alerta por correo electrónico cuando se exceda una cantidad configurada, mientras que las cuotas desactivarán la API.
Recomendamos configurar un presupuesto de 1 USD y una primera alerta al 10%. Con esta configuración, Google te enviará un correo electrónico si gastas más de 10 céntimos de tu propio dinero.