AB DEM 21. NOVEMBER 2023 FUNKTIONIERT DER UNTEN DOKUMENTIERTE KARTENFIX NICHT MEHR
Den aktuellen Status finden Sie in Ausgabe Nr. 41.
Seit dem 1. Dezember 2018 funktioniert die Kartenfunktion in Lightroom-Versionen ohne Abonnement nicht mehr. Adobe empfiehlt den Kauf eines Abonnements für Lightroom CC (120 USD/Jahr) oder das Kopieren und Einfügen von GPS-Koordinaten in Ihre bevorzugte Suchmaschine (LOL!).
Dieses Projekt stellt die verlorene Funktionalität wieder her, ohne Lightroom CC zu abonnieren.
Um dies zu erreichen, werden wir Lightroom so modifizieren, dass es unseren eigenen Google Maps-API-Schlüssel anstelle des von Adobe verwendet. Wir benötigen zwar ein Abonnement bei Google, dieses Abonnement beinhaltet jedoch 200 USD an kostenlosen Nutzungsguthaben pro Monat, was für Gelegenheitsnutzer des Lightroom Map-Moduls ausreichend sein sollte.
Dieses Verfahren erfordert mittlere bis fortgeschrittene IT-Kenntnisse. Fehler können Ihre Installation von Lightroom beschädigen! Wenn Sie nicht wissen, was Sie tun, bitten Sie Ihren zuständigen IT-Supportmitarbeiter um Hilfe. Wir sind NICHT Ihr IT-Support-Mitarbeiter!
Halten Sie Ihren Google Maps-API-Schlüssel geheim
Wenn Sie Ihren Google Maps-API-Schlüssel nicht schützen, kann es zu unerwarteten Belastungen Ihres Google Cloud-Kontos kommen.
GARANTIE ERLISCHT! Wir sind NICHT dafür verantwortlich, dass Ihre Lightroom-Installation kaputt geht. Wir sind NICHT für etwaige Gebühren auf Ihrem Google Cloud-Konto verantwortlich.
Dieses Verfahren wurde mit Lightroom 6.14 unter Windows 10 entwickelt und getestet.
Benutzer berichteten, dass dies auch funktioniert mit:
Derzeit funktioniert der Patch NICHT mit Lightroom 5.x (Problem Nr. 8) oder Lightroom 7.x (Problem Nr. 10). Bitte teilen Sie uns mit, ob Sie bei diesen Versionen Fortschritte machen, indem Sie in den offenen Fragen einen Kommentar abgeben.
Ein großes Dankeschön! an alle, die mit ihrer Recherche und ihrem Feedback dazu beigetragen haben!
Sie müssen Ihren persönlichen Google Maps-API-Schlüssel erstellen, um den von Adobe zu ersetzen.
Der erste Abschnitt in diesem Leitfaden führt Sie durch den Prozess. Wenn Sie noch kein Konto bei Google Cloud haben, umfasst dies auch die Erstellung des Kontos und die Eingabe der Rechnungsdaten.
Gehen Sie zu APIs & Dienste > Bibliothek und filtern Sie nach Kategorie > Karten.
Wählen Sie die folgenden APIs aus und klicken Sie auf Aktivieren:
Da Lightroom nur zwei APIs aufruft, beschränken Sie den Google Maps-API-Schlüssel auf die erforderlichen Dienste, um das Missbrauchsrisiko zu begrenzen.
Die monatlichen kostenlosen Nutzungsguthaben von Google Cloud sollten für die gelegentliche Nutzung des Lightroom Map-Moduls ausreichen. Um Überraschungen zu vermeiden, sollten Sie Budgets oder Kontingente festlegen. Budgets senden eine E-Mail-Benachrichtigung, wenn ein konfigurierter Betrag überschritten wird, während Kontingente die API deaktivieren.
Wir empfehlen, ein Budget von 1 USD und eine erste Benachrichtigung bei 10 % zu konfigurieren. Bei dieser Konfiguration sendet Ihnen Google eine E-Mail, wenn Sie mehr als 10 Cent Ihres eigenen Geldes ausgeben.
Wenn Lightroom noch läuft, schließen Sie es jetzt.
Suchen Sie die Anwendungsdateien von Lightroom und suchen Sie nach einer Datei namens Location.lrmodule
. Dies ist das Lightroom Map-Modul. Erstellen Sie eine Sicherungskopie dieser Datei und bewahren Sie sie an einem sicheren Ort auf.
Der Speicherort und der Dateiname können je nach Betriebssystem und Lightroom-Version variieren.
C:Program FilesAdobeLightroomLocation.lrmodule
/Applications/Adobe Lightroom/Adobe Lightroom.app
, klicken Sie mit der rechten Maustaste und wählen Sie Paketinhalt anzeigen aus. Das Kartenmodul ist /Contents/PlugIns/Location.agmodule
.WICHTIGER HINWEIS: Wenn Sie die Sicherungskopie im Originalordner belassen, muss die Dateierweiterung geändert werden (z. B. von Location.lrmodule in Location.lrmodule_bak). Andernfalls wird es möglicherweise trotzdem von Lightroom anstelle der gepatchten Datei erfasst.
Verwenden Sie unter Windows Resource Hacker, um die Lua-Ressourcen zu extrahieren, die wir patchen müssen:
Location.lrmodule
mit Resource HackerLUA
LOCATIONMAPVIEW.LUA
und wählen Sie „Bin-Ressource speichern“.AGREVERSEGEOCODESERVICE.LUA
und wählen Sie „Bin-Ressource speichern“ ausLOCATIONDEBUGPANEL.LUA
und wählen Sie „Bin-Ressource speichern“ aus Auf dem Mac kann direkt in Location.agmodule
auf die Lua-Dateien zugegriffen werden:
Location.agmodel
und wählen Sie Paketinhalt anzeigen/Contents/Resources/
LocationMapView.lua
, AgReverseGeocodeService.lua
und LocationDebugPanel.lua
zum Patchen an den gewünschten SpeicherortWenn Sie es noch nicht getan haben, installieren Sie Python 3.
Mit dem mit diesem Projekt gelieferten Python-Skript patchluastr.py können Sie bestimmte Zeichenfolgen in Lua-Dateien ersetzen.
Verwenden Sie für LocationMapView und AgReverseGeocodeService das Python-Skript patchluastr.py, um den Schlüssel von Adobe durch Ihren persönlichen Google Maps-API-Schlüssel zu ersetzen:
.bin
enden, sonst findet Resource Hacker sie im nächsten Schritt nicht. Führen Sie patchluastr.py
wie folgt aus und ersetzen Sie dabei {your-api-key}
durch Ihren Google API-Schlüssel (ohne geschweifte Klammern): 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
. Führen Sie dann patchluastr.py
wie folgt aus und ersetzen Sie dabei {your-api-key}
durch Ihren Google API-Schlüssel (ohne geschweifte Klammern): 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
Verwenden Sie bei der Datei LocationDebugPanel das Python-Skript patchluastr.py, um die Signaturprüfung zu deaktivieren:
patchluastr.py LOCATIONDEBUGPANEL.LUA "nature" "street" -o LOCATIONDEBUGPANEL.bin
patchluastr.py LocationDebugPanel.lua.bak "nature" "street" -o LocationDebugPanel.lua
Wenn die Ausführung von patchluastr.py mit einem Fehler wie zum Beispiel TypeError: unsupported operand type(s)
fehlschlägt, stellen Sie sicher, dass Sie Python 3 installiert haben. Wenn Sie mehrere Python-Versionen installiert haben, können Sie das Skript explizit mit Python 3 ausführen, indem Sie dem Befehl python3
voranstellen:
python3 patchluastr.py {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.lua
Experimentell : Für Windows-Benutzer, die Python nicht installieren möchten, habe ich hier eine ausführbare Version von patchluastr
zur Verfügung gestellt, die keine Installation von Python erfordert. Die Befehlszeile lautet:
patchluastr.exe {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.bin
Hinweis : Einige Benutzer geben an, dass sie zusätzliche Patches benötigen. Wenn Sie die Karte nicht zum Laufen bringen können oder die Karte nicht mehr funktioniert, lesen Sie Problem Nr. 12 und Problem Nr. 19. Wir haben dieses Problem in den USA nicht gesehen, daher hängt es möglicherweise von Ihrem Land ab.
Verwenden Sie unter Windows Resource Hacker, um die Lua-Ressourcen durch ihre gepatchte Version zu ersetzen.
Location.lrmodule
mit Resource HackerLUA
LOCATIONMAPVIEW.LUA
und wählen Sie Ressource ersetzen aus. Klicken Sie dann auf Datei auswählen und navigieren Sie zur gepatchten Version dieser Ressource. Klicken Sie dann auf ErsetzenAGREVERSEGEOCODESERVICE.LUA
und wählen Sie Ressource ersetzen aus. Klicken Sie dann auf Datei auswählen und navigieren Sie zur gepatchten Version dieser Ressource. Klicken Sie dann auf Ersetzen .LOCATIONDEBUGPANEL.LUA
und wählen Sie Ressource ersetzen aus. Klicken Sie dann auf Datei auswählen und navigieren Sie zur gepatchten Version dieser Ressource. Klicken Sie dann auf ErsetzenLocation.lrmodule
. Abhängig von den Berechtigungen müssen Sie möglicherweise „Speichern unter“ verwenden und dann die geänderte Datei zurück nach C:Program FilesAdobeLightroom
kopieren. Kopieren Sie auf dem Mac die gepatchten Lua-Dateien zurück nach /Applications/Adobe Lightroom/Adobe Lightroom.app/Contents/PlugIns/Location.agmodule/Contents/Resources/
und überschreiben Sie dabei die Originaldateien.
Das Kartenmodul in Ihrer Lightroom-Installation funktioniert jetzt wieder.
Wenn Sie die Geo Coding API nicht aktiviert haben, werden kurzzeitig Fehlermeldungen angezeigt. Die grundlegende Karten- und Geotagging-Funktionalität funktioniert jedoch weiterhin. (Hinweis: Einige Benutzer berichten, dass das Kartenmodul für sie nur funktioniert, wenn die Geocodierungs-API aktiviert ist.)
Stellen Sie sicher, dass Sie ein Backup von Locations.lrmodule haben, bevor Sie damit spielen!
Die folgenden Beispiele verwenden Patchdateien, die im Ordner hacks
zu finden sind. Falls Sie dies noch nicht getan haben, empfehlen wir Ihnen, das komplette Projekt von Github zu klonen oder herunterzuladen, indem Sie beispielsweise auf die grüne Schaltfläche oben rechts auf dieser Seite klicken.
Hinweis: Die meisten dieser Hacks basieren auf der Google Maps-API und erfordern daher zunächst die Korrektur des Google Maps-API-Schlüssels.
Dieser Patch ersetzt den Kartenstil „Light“ durch OpenStreeMap.
Führen Sie nach dem Patchen des API-Schlüssels Folgendes aus:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/osm.patch -o LOCATIONMAPVIEW-osm.bin
Verwenden Sie nun LOCATIONMAPVIEW-osm.bin
mit Resource Hacker anstelle von LOCATIONMAPVIEW.bin
und anschließend steht Ihnen OpenStreetMap als Kartenstil „Light“ zur Verfügung.
Dank für den Hack: @pbb72
Das ist ziemlich radikal; Wenn wir StreetView aktivieren, können wir unsere Karten-Pins in 3D sehen! Es ist nicht sehr präzise, aber es ist einfach sehr cool.
In der Lightroom-Datei ist bereits Code zum Aktivieren von StreetView vorhanden. Adobe hat also offenbar daran gearbeitet, es aber möglicherweise deaktiviert, weil es nicht gut genug war.
Um diese versteckte Funktion zu aktivieren, führen Sie Folgendes aus:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/streetview.patch -o LOCATIONMAPVIEW-sv.bin
Dank für Hack und Screenshot: @pbb72
Einige Orte auf der Erde bieten Luftbilder mit diagonaler Perspektive (anstelle einer Draufsicht) an. Hinweis: Diese Fotos sind nicht sehr präzise.
Um dieses Steuerelement zu aktivieren, führen Sie Folgendes aus:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/tiltmap.patch -o LOCATIONMAPVIEW-tilt.bin
Mit diesem Patch erscheinen unten rechts neue Steuerelemente, wenn die Daten für den aktuellen Standort verfügbar sind. Möglicherweise müssen Sie hineinzoomen, damit das Steuerelement angezeigt wird.
Dank für den Hack: @pbb72
Wir können der Kartenstilauswahl von Lightroom keine weiteren Karten hinzufügen (glauben wir). Aber zum Glück bietet Google Maps einen eigenen Kartenstil-Selektor, den wir nur aktivieren müssen.
Nach der Aktivierung können wir dem Dropdown-Menü eigene Einträge hinzufügen. Weitere Informationen finden Sie in den Kommentaren in der Patch-Datei.
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/mapselector.patch -o LOCATIONMAPVIEW-sel.bin
Dank für den Hack: @pbb72
Dieser Patch zeigt JavaScript-Fehler- und Debugmeldungen in einem Fenster unterhalb der Karte an, was bei der Entwicklung weiterer Hacks sehr hilfreich sein wird. Sie möchten dies wahrscheinlich nicht dauerhaft aktivieren, also erstellen Sie eine Sicherungskopie des Standortmoduls, bevor Sie diesen Hack anwenden.
Führen Sie das Skript hacks/jsconsole.patch aus:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/jsconsole.patch -o LOCATIONMAPVIEW-con.bin
Das Skript führt Folgendes aus:
Jetzt viel Spaß mit tatsächlich lesbaren Fehlermeldungen!
Dank für Hack und Screenshot: @pbb72
Anfang 2018 hat Google das Preismodell für die Einbettung von Google Maps in Anwendungen von Drittanbietern überarbeitet und von kostenlosem Zugang oder Pauschalgebühren auf transaktionsbasierte Preise umgestellt. Die Anzahl der Anfragen an die Google Maps-APIs wird gezählt und ab einem bestimmten Schwellenwert wird für jede Anfrage eine geringe Gebühr erhoben.
Die neuen Preise von Google sind nicht mit Produkten kompatibel, die unbefristet lizenziert sind. Mit dem klassischen Lightroom bekam Adobe nur einmal Geld, müsste Google aber jedes Mal bezahlen, wenn Sie das Kartenmodul nutzen. Für Adobe ist dies kein nachhaltiges Geschäftsmodell.
Der in alte Versionen von Adobe Lightroom eingebettete Google Maps-API-Schlüssel ist am 30. November 2018 abgelaufen.
Die Google Maps JavaScript API ermöglicht die Einbettung von Google Maps in Websites und Anwendungen.
Ab Dezember 2018 kostet die Google Maps JavaScript API 0,007 USD pro Kartenladung (7 USD / 1000). Sobald eine Karte geladen ist, führen Benutzerinteraktionen mit der Karte, wie z. B. Schwenken, Zoomen oder Wechseln der Kartenebene, nicht zu zusätzlichen Kartenladevorgängen.
Darüber hinaus war die von Lightroom angeforderte Version der API ab März 2023 veraltet, was dazu führte, dass Lightroom eine inkompatible Version lud und die Kartenfunktionalität beeinträchtigte.
Das Lightroom-Kartenmodul ruft die Maps-JavaScript-API auf, um die Karte in Lightroom anzuzeigen. Damit das Kartenmodul funktioniert, ist Zugriff auf diese API erforderlich.
Der Zugriff auf diese API ist in der Lua-Ressource LOCATIONMAPVIEW.LUA implementiert.
Mit der Google Geocoding API können Anwendungen anhand von GPS-Koordinaten nach Orten suchen und nach Ortsnamen suchen.
Ab Dezember 2018 kostet die Google Geocoding API 0,005 USD pro Anfrage (5 USD / 1000).
Das Lightroom-Kartenmodul ruft die Geocoding-API auf, um den Ortsnamen des aktuell ausgewählten Bildes und bei der Suche nach einem Ort anzuzeigen. Das Kartenmodul funktioniert ohne Zugriff auf diese API, es wird jedoch beim Aufrufen des Kartenmoduls und beim Wechseln zwischen Bildern kurzzeitig eine Fehlermeldung angezeigt.
Beim Aufrufen des Kartenmoduls haben wir mehrere Aufrufe der Geocoding-API beobachtet. Wir wissen auch nicht, welche anderen Vorgänge Aufrufe dieser API erzeugen. Wir empfehlen, die auf der Google Cloud Platform verfügbaren Nutzungsberichte genau im Auge zu behalten. Deaktivieren Sie im Zweifelsfall oder zu kostspielig den Zugriff auf die Geocoding-API, indem Sie den Dienst aus den API-Einschränkungen unter APIs & Dienste > Anmeldeinformationen entfernen.
Der Zugriff auf diese API ist in der Lua-Ressource AGREVERSEGEOCODESERVICE.LUA implementiert.
Für die umgekehrte Geokodierung (Hinzufügen des Standortnamens zu Bildmetadaten basierend auf bekannten Koordinaten) greift Lightroom mit der signature
auf die Google-API zu, die anscheinend auf der Grundlage des (abgelaufenen) API-Schlüssels von Adobe und Ihres Lightroom-Lizenzschlüssels berechnet wird. Der fehlerhafte API-Aufruf sieht folgendermaßen aus:
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]
Zum Glück für uns verweigert die Google-API zwar den Zugriff mit einer abgelaufenen Signatur, die API funktioniert jedoch, wenn signature=[string-of-characters]
aus der URL entfernt oder signature
durch einen unbekannten Parameternamen ersetzt wird. Leider ist die String- signature
in keiner Lua-Datei vorhanden.
Es stellt sich heraus, dass die Funktionalität durch das Aufbrechen von Zeichenfolgen verborgen wird. Die Signatur wird in LocationDebugPanel.lua
berechnet und die nature
in dieser Datei ist Teil des Parameternamens „ signature
. Wenn Sie nature
durch street
ersetzen, ändert sich der API-Aufruf wie folgt:
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]
was Google gerne annimmt.
Ab 2018 benötigt Google ein Konto auf der Google Cloud Platform, das für die Abrechnung aktiviert ist. Alle Google Maps API-Transaktionen werden diesem Konto belastet. Zu unserem Glück gewährt Google jedem Konto ein monatliches Guthaben von 200 USD. Nur Transaktionen, die dieses Limit überschreiten, werden Ihrer Kreditkarte belastet.
Kosten und Nutzungsbedingungen können je nach Land unterschiedlich sein. Bitte lesen Sie die Details auf der Website von Google sorgfältig durch.
200 USD reichen für über 28.000 Kartenladevorgänge oder 40.000 Aufrufe der Geo Coding API, was für die gelegentliche Nutzung des Lightroom-Kartenmoduls ausreichen sollte. Um Überraschungen zu vermeiden, können Sie Budgets oder Kontingente festlegen. Budgets senden eine E-Mail-Benachrichtigung, wenn ein konfigurierter Betrag überschritten wird, während Kontingente die API deaktivieren.
Wir empfehlen, ein Budget von 1 USD und eine erste Benachrichtigung bei 10 % zu konfigurieren. Bei dieser Konfiguration sendet Ihnen Google eine E-Mail, wenn Sie mehr als 10 Cent Ihres eigenen Geldes ausgeben.