PER TANGGAL 21 NOVEMBER 2023, PERBAIKAN PETA SEBAGAI DOKUMENTASI DI BAWAH INI TIDAK BEKERJA LAGI
Lihat edisi #41 untuk status terkini.
Mulai 1 Desember 2018, fungsionalitas Peta di Lightroom versi non-langganan berhenti berfungsi. Adobe menyarankan untuk membeli langganan Lightroom CC (120 USD/tahun) atau menyalin & menempelkan koordinat GPS ke mesin pencari favorit Anda (LOL!).
Proyek ini menghidupkan kembali fungsionalitas yang hilang, tanpa berlangganan Lightroom CC.
Untuk mencapai hal ini, kami akan memodifikasi Lightroom untuk menggunakan kunci Google Maps API kami sendiri, bukan milik Adobe. Meskipun kami memerlukan langganan dengan Google, langganan tersebut mencakup kredit penggunaan gratis sebesar 200 USD per bulan, yang seharusnya cukup untuk pengguna biasa modul Lightroom Map.
Prosedur ini memerlukan keterampilan TI tingkat menengah hingga tingkat lanjut. Kesalahan dapat merusak instalasi Lightroom Anda! Jika Anda tidak tahu apa yang Anda lakukan, mintalah bantuan staf TI yang ditunjuk untuk Anda. Kami BUKAN orang pendukung TI Anda!
Jaga kerahasiaan kunci Google Maps API Anda
Gagal melindungi kunci Google Maps API Anda dapat menyebabkan tagihan tak terduga ke akun Google Cloud Anda.
GARANSI BATAL! Kami TIDAK bertanggung jawab atas kerusakan instalasi Lightroom Anda. Kami TIDAK bertanggung jawab atas tagihan apa pun pada akun Google Cloud Anda.
Prosedur ini dikembangkan dan diuji dengan Lightroom 6.14 pada Windows 10.
Pengguna melaporkan bahwa ini juga berfungsi dengan:
Saat ini patch TIDAK bekerja pada Lightroom 5.x (edisi #8) atau Lightroom 7.x (edisi #10). Harap beri tahu kami jika Anda membuat kemajuan pada versi ini dengan memberi komentar di terbitan terbuka.
Terima kasih banyak! kepada semua orang yang berkontribusi dengan penelitian dan masukan mereka!
Anda perlu membuat kunci Google Maps API pribadi Anda untuk menggantikan kunci Adobe.
Bagian pertama dalam panduan ini akan memandu Anda melalui prosesnya. Jika Anda belum memiliki akun di Google Cloud, hal ini juga mencakup pembuatan akun dan memasukkan detail penagihan.
Buka API & Layanan > Perpustakaan dan filter berdasarkan Kategori > Peta.
Pilih API berikut dan klik Aktifkan:
Karena Lightroom hanya memanggil dua API, batasi kunci Google Maps API pada layanan yang diperlukan untuk membatasi risiko penyalahgunaan.
Kredit penggunaan gratis bulanan Google Cloud seharusnya cukup untuk penggunaan biasa modul Lightroom Map. Untuk menghindari kejutan, sebaiknya tetapkan anggaran atau kuota. Anggaran akan mengirimkan peringatan email ketika jumlah yang dikonfigurasi terlampaui, sedangkan kuota akan menonaktifkan API.
Kami menyarankan untuk mengonfigurasi anggaran sebesar 1 USD dan peringatan pertama sebesar 10%. Dengan konfigurasi ini, Google akan mengirimi Anda email jika Anda membelanjakan lebih dari 10 sen uang Anda sendiri.
Jika Lightroom masih berjalan, tutup sekarang.
Temukan file aplikasi Lightroom, dan cari file bernama Location.lrmodule
. Ini adalah modul Peta Lightroom. Buat salinan cadangan file ini dan simpan di tempat yang aman.
Lokasi dan nama file mungkin berbeda, tergantung sistem operasi dan versi Lightroom.
C:Program FilesAdobeLightroomLocation.lrmodule
/Applications/Adobe Lightroom/Adobe Lightroom.app
, klik kanan dan pilih Show Package Content . Modul Peta adalah /Contents/PlugIns/Location.agmodule
.CATATAN PENTING: Jika Anda meninggalkan salinan cadangan di folder asli, ekstensi file harus diubah (misalnya dari Location.lrmodule menjadi Location.lrmodule_bak). Jika tidak, file tersebut mungkin masih diambil oleh Lightroom, bukan file yang ditambal.
Di Windows, gunakan Resource Hacker untuk mengekstrak sumber daya Lua yang perlu kita patch:
Location.lrmodule
dengan Resource HackerLUA
LOCATIONMAPVIEW.LUA
, klik kanan dan pilih simpan sumber daya binAGREVERSEGEOCODESERVICE.LUA
, klik kanan dan pilih simpan sumber daya binLOCATIONDEBUGPANEL.LUA
, klik kanan dan pilih simpan sumber daya bin Di Mac, file Lua dapat diakses langsung di dalam Location.agmodule
:
Location.agmodel
dan pilih Tampilkan Konten Paket/Contents/Resources/
LocationMapView.lua
, AgReverseGeocodeService.lua
dan LocationDebugPanel.lua
ke lokasi yang diinginkan untuk patchingJika Anda belum melakukannya, instal Python 3.
Skrip Python patchluastr.py yang disertakan dengan proyek ini memungkinkan Anda mengganti string tertentu dalam file Lua.
Untuk LocationMapView dan AgReverseGeocodeService, gunakan skrip Python patchluastr.py untuk mengganti kunci Adobe dengan kunci Google Maps API pribadi Anda:
.bin
, jika tidak, Resource Hacker tidak akan menemukannya pada langkah berikutnya. Jalankan patchluastr.py
sebagai berikut, ganti {your-api-key}
dengan kunci Google API Anda (tanpa tanda kurung kurawal): 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
. Kemudian jalankan patchluastr.py
sebagai berikut, ganti {your-api-key}
dengan kunci Google API Anda (tanpa tanda kurung kurawal): 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
Dengan file LocationDebugPanel, gunakan skrip Python patchluastr.py untuk menonaktifkan pemeriksaan tanda tangan:
patchluastr.py LOCATIONDEBUGPANEL.LUA "nature" "street" -o LOCATIONDEBUGPANEL.bin
patchluastr.py LocationDebugPanel.lua.bak "nature" "street" -o LocationDebugPanel.lua
Jika menjalankan patchluastr.py gagal dengan kesalahan seperti misalnya TypeError: unsupported operand type(s)
, pastikan Anda telah menginstal Python 3. Jika Anda menginstal beberapa versi Python, Anda dapat menjalankan skrip secara eksplisit dengan Python 3 dengan mengawali perintah dengan python3
:
python3 patchluastr.py {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.lua
Eksperimental : Untuk pengguna Windows yang tidak ingin menginstal Python, saya menyediakan versi patchluastr
yang dapat dieksekusi di sini, yang tidak memerlukan instalasi Python. Baris perintahnya adalah:
patchluastr.exe {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.bin
Catatan : Beberapa pengguna melaporkan memerlukan patch tambahan. Jika Anda tidak dapat membuat peta berfungsi atau peta berhenti berfungsi, lihat edisi #12 dan edisi #19. Kami tidak melihat masalah ini di AS, jadi mungkin bergantung pada negara Anda.
Di Windows, gunakan Resource Hacker untuk mengganti sumber daya Lua dengan versi patchnya.
Location.lrmodule
dengan Resource HackerLUA
LOCATIONMAPVIEW.LUA
, klik kanan dan pilih Ganti Sumber Daya , lalu klik Pilih File dan navigasikan ke versi patch sumber daya ini. Lalu klik GantiAGREVERSEGEOCODESERVICE.LUA
klik kanan dan pilih Ganti Sumber Daya , lalu klik Pilih File dan arahkan ke versi patch sumber daya ini. Lalu klik Ganti .LOCATIONDEBUGPANEL.LUA
klik kanan dan pilih Ganti Sumber Daya , lalu klik Pilih File dan navigasikan ke versi patch sumber daya ini. Lalu klik GantiLocation.lrmodule
. Tergantung pada izinnya, Anda mungkin harus menggunakan Simpan sebagai lalu salin kembali file yang dimodifikasi ke C:Program FilesAdobeLightroom
Di Mac, salin kembali file Lua yang telah dipatch ke /Applications/Adobe Lightroom/Adobe Lightroom.app/Contents/PlugIns/Location.agmodule/Contents/Resources/
, timpa file asli.
Modul Peta di instalasi Lightroom Anda sekarang berfungsi kembali.
Jika Anda tidak mengaktifkan Geo Coding API, Anda akan melihat pesan kesalahan sebentar. Namun, fungsi dasar peta dan penandaan geografis akan tetap berfungsi. (Catatan: Beberapa pengguna melaporkan bahwa modul peta tidak berfungsi untuk mereka kecuali API Geo Coding diaktifkan)
Pastikan kembali Anda memiliki cadangan Locations.lrmodule sebelum memainkannya!
Contoh di bawah ini menggunakan file patch yang dapat ditemukan di folder hacks
. Jika Anda belum melakukannya, kami sarankan untuk mengkloning atau mengunduh proyek lengkap dari Github, misalnya dengan mengklik tombol hijau di kanan atas halaman ini.
Catatan: Sebagian besar peretasan ini dibuat di Google Maps API dan oleh karena itu masih memerlukan perbaikan kunci Google Maps API terlebih dahulu.
Patch ini menggantikan gaya peta "Ringan" dengan OpenStreeMap.
Setelah menambal kunci API, jalankan:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/osm.patch -o LOCATIONMAPVIEW-osm.bin
Sekarang gunakan LOCATIONMAPVIEW-osm.bin
dengan Resource Hacker, bukan LOCATIONMAPVIEW.bin
, dan setelah itu OpenStreetMap tersedia sebagai gaya peta "Ringan".
Kredit untuk peretasan: @ pbb72
Hal ini cukup radikal; jika kita mengaktifkan StreetView, maka kita dapat melihat pin peta kita dalam 3-D! Ini tidak terlalu tepat, tapi sangat keren.
Sudah ada kode di file Lightroom untuk mengaktifkan StreetView, jadi sepertinya Adobe sedang mengerjakannya, tapi mungkin dimatikan karena kurang bagus.
Untuk mengaktifkan fitur tersembunyi ini, jalankan:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/streetview.patch -o LOCATIONMAPVIEW-sv.bin
Kredit untuk retasan dan tangkapan layar: @pbb72
Beberapa lokasi di bumi menawarkan foto udara dengan perspektif diagonal (bukan tampilan dari atas ke bawah). Catatan: foto-foto ini tidak terlalu tepat.
Untuk mengaktifkan kontrol ini, jalankan:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/tiltmap.patch -o LOCATIONMAPVIEW-tilt.bin
Dengan patch ini, kontrol baru akan muncul di kanan bawah jika data tersedia untuk lokasi saat ini. Anda mungkin harus memperbesar agar kontrol muncul.
Kredit untuk peretasan: @ pbb72
Kami tidak dapat menambahkan lebih banyak peta ke pemilih gaya peta Lightroom (menurut kami). Tapi untungnya Google Maps menawarkan pemilih gaya petanya sendiri, yang hanya perlu kita aktifkan.
Setelah diaktifkan, kita dapat menambahkan entri kita sendiri ke menu drop-down. Lihat komentar di dalam file patch untuk informasi lebih lanjut.
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/mapselector.patch -o LOCATIONMAPVIEW-sel.bin
Kredit untuk peretasan: @ pbb72
Patch ini menampilkan pesan kesalahan dan debug JavaScript di jendela di bawah peta, yang akan sangat membantu saat mengembangkan lebih banyak peretasan. Anda mungkin tidak ingin ini diaktifkan secara permanen, jadi buatlah cadangan modul Lokasi sebelum menerapkan peretasan ini.
Jalankan skrip hacks/jsconsole.patch:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/jsconsole.patch -o LOCATIONMAPVIEW-con.bin
Skrip melakukan hal berikut:
Sekarang nikmati pesan kesalahan yang benar-benar dapat dibaca!
Kredit untuk retasan dan tangkapan layar: @pbb72
Pada awal tahun 2018, Google mengubah model penetapan harga untuk menyematkan Google Maps ke dalam aplikasi pihak ketiga, mengubah dari akses gratis atau biaya tetap menjadi penetapan harga berdasarkan transaksi. Jumlah permintaan ke Google Maps API dihitung, dan setelah mencapai ambang batas, sejumlah kecil biaya akan dikenakan untuk setiap permintaan.
Penetapan harga baru Google tidak kompatibel dengan produk yang memiliki lisensi selamanya. Dengan Lightroom klasik, Adobe hanya mendapat uang satu kali, tetapi harus membayar Google setiap kali Anda menggunakan modul Peta. Bagi Adobe, ini bukanlah model bisnis yang berkelanjutan.
Kunci Google Maps API yang disematkan pada Adobe Lightroom versi lama telah habis masa berlakunya pada 30 November 2018.
Google Maps JavaScript API memungkinkan untuk menyematkan Google Maps ke situs web dan aplikasi.
Mulai Desember 2018, Google Maps JavaScript API berharga 0,007 USD per pemuatan peta (USD 7/1000). Setelah peta dimuat, interaksi pengguna dengan peta, seperti menggeser, memperbesar, atau berpindah lapisan peta, tidak menghasilkan pemuatan peta tambahan.
Selain itu, mulai Maret 2023, versi API yang diminta oleh Lightroom tidak digunakan lagi, yang menyebabkan Lightroom memuat versi yang tidak kompatibel, sehingga merusak fungsi peta.
Modul Lightroom Map memanggil Maps JavaScript API untuk menampilkan peta di dalam Lightroom. Akses ke API ini diperlukan agar modul Peta dapat berfungsi.
Akses ke API ini diimplementasikan pada sumber daya Lua LOCATIONMAPVIEW.LUA.
Google Geocoding API memungkinkan aplikasi mencari lokasi dan mencari nama tempat berdasarkan koordinat GPS.
Mulai Desember 2018, Google Geocoding API berharga 0,005 USD per permintaan (5 USD / 1000).
Modul Lightroom Map memanggil Geocoding API untuk menampilkan nama tempat dari gambar yang sedang dipilih dan saat mencari lokasi. Modul Peta berfungsi tanpa akses ke API ini, tetapi akan menampilkan pesan kesalahan sebentar saat memasuki modul Peta dan saat beralih antar gambar.
Kami mengamati beberapa panggilan ke Geocoding API saat memasuki modul Peta. Kami juga tidak tahu, operasi apa lagi yang akan membuat panggilan ke API ini. Kami menyarankan Anda untuk terus memperhatikan laporan penggunaan yang tersedia di Google Cloud Platform. Jika ragu atau terlalu mahal, nonaktifkan akses ke Geocoding API dengan menghapus layanan dari pembatasan API pada API & Layanan > Kredensial.
Akses ke API ini diimplementasikan di sumber daya Lua AGREVERSEGEOCODESERVICE.LUA.
Untuk geocoding terbalik (menambahkan nama lokasi ke metadata gambar berdasarkan koordinat yang diketahui) Lightroom mengakses Google API dengan signature
parameter kueri yang tampaknya dihitung berdasarkan kunci API Adobe (kedaluwarsa) dan kunci lisensi Lightroom Anda. Panggilan API yang melanggar terlihat seperti:
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]
Untungnya bagi kami, meskipun Google API menolak akses dengan tanda tangan yang sudah habis masa berlakunya, API tersebut tetap berfungsi jika signature=[string-of-characters]
dihapus dari URL, atau saat signature
diganti dengan nama parameter yang tidak diketahui. Sayangnya, signature
string tidak ada di file Lua mana pun.
Ternyata fungsinya disembunyikan dengan memutus string. Tanda tangan dihitung di LocationDebugPanel.lua
dan nature
string dalam file tersebut adalah bagian dari nama parameter signature
. Mengganti nature
dengan street
akan mengubah panggilan API menjadi:
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]
yang diterima dengan senang hati oleh Google.
Mulai tahun 2018, Google memerlukan akun di Google Cloud Platform yang diaktifkan untuk penagihan. Semua transaksi Google Maps API dibebankan pada akun tersebut. Beruntung bagi kami, Google memberi setiap akun kredit bulanan sebesar 200 USD. Hanya transaksi melebihi batas tersebut yang akan ditagihkan ke kartu kredit Anda.
Biaya dan persyaratan layanan mungkin berbeda di setiap negara. Harap tinjau detailnya dengan cermat di situs web Google.
200 USD cukup untuk lebih dari 28.000 pemuatan peta atau 40.000 panggilan ke Geo Coding API, yang seharusnya cukup untuk penggunaan biasa modul Lightroom Map. Untuk menghindari kejutan, Anda dapat menetapkan anggaran atau kuota. Anggaran akan mengirimkan peringatan email ketika jumlah yang dikonfigurasi terlampaui, sedangkan kuota akan menonaktifkan API.
Kami menyarankan untuk mengonfigurasi anggaran sebesar 1 USD dan peringatan pertama sebesar 10%. Dengan konfigurasi ini, Google akan mengirimi Anda email jika Anda membelanjakan lebih dari 10 sen uang Anda sendiri.