A PARTIR DE 21 DE NOVEMBRO DE 2023, A CORREÇÃO DO MAPA DOCUMENTADA ABAIXO NÃO FUNCIONA MAIS
Consulte a edição nº 41 para obter o status atual.
A partir de 1º de dezembro de 2018, a funcionalidade Mapa nas versões sem assinatura do Lightroom parou de funcionar. A Adobe sugere comprar uma assinatura do Lightroom CC (120 USD/ano) ou copiar e colar as coordenadas GPS em seu mecanismo de busca favorito (LOL!).
Este projeto ressuscita a funcionalidade perdida, sem assinar o Lightroom CC.
Para conseguir isso, modificaremos o Lightroom para usar nossa própria chave de API do Google Maps em vez da da Adobe. Embora precisemos de uma assinatura do Google, essa assinatura inclui 200 USD de créditos de uso gratuito por mês, o que deve ser suficiente para usuários casuais do módulo Lightroom Map.
Este procedimento requer habilidades de TI médias a avançadas. Erros podem prejudicar a instalação do Lightroom! Se você não sabe o que está fazendo, peça ajuda ao responsável de suporte de TI designado. NÃO somos sua pessoa de suporte de TI!
Mantenha sua chave da API do Google Maps em segredo
Deixar de proteger sua chave de API do Google Maps pode gerar cobranças inesperadas em sua conta do Google Cloud.
GARANTIA ANULADA! NÃO somos responsáveis por interromper a instalação do Lightroom. NÃO somos responsáveis por quaisquer cobranças na sua conta do Google Cloud.
Este procedimento foi desenvolvido e testado com Lightroom 6.14 no Windows 10.
Os usuários relataram que isso também funciona com:
Atualmente o patch NÃO funciona com Lightroom 5.x (edição nº 8) ou Lightroom 7.x (edição nº 10). Informe-nos se você fizer algum progresso nessas versões comentando nas questões em aberto.
Um grande obrigado! a todos que contribuíram com suas pesquisas e feedback!
Você precisa criar sua chave pessoal da API do Google Maps para substituir a da Adobe.
A primeira seção deste guia o guiará pelo processo. Se você ainda não possui uma conta no Google Cloud, isso também incluirá a criação da conta e a inserção dos detalhes de faturamento.
Vá para APIs e Serviços > Biblioteca e filtre por Categoria > Mapas.
Selecione as seguintes APIs e clique em Habilitar:
Como o Lightroom chama apenas duas APIs, restrinja a chave da API do Google Maps aos serviços necessários para limitar o risco de abuso.
Os créditos mensais de uso gratuito do Google Cloud devem ser suficientes para uso casual do módulo Lightroom Map. Para evitar surpresas, você deve definir orçamentos ou cotas. Os orçamentos enviarão um alerta por e-mail quando um valor configurado for excedido, enquanto as cotas desativarão a API.
Recomendamos configurar um orçamento de 1 USD e um primeiro alerta de 10%. Com esta configuração, o Google enviará um e-mail para você se você gastar mais de 10 centavos do seu próprio dinheiro.
Se o Lightroom ainda estiver em execução, feche-o agora.
Localize os arquivos do aplicativo Lightroom e procure um arquivo chamado Location.lrmodule
. Este é o módulo Lightroom Map. Faça uma cópia de backup deste arquivo e guarde-a em um local seguro.
A localização e o nome do arquivo podem variar de acordo com o sistema operacional e a versão do Lightroom.
C:Program FilesAdobeLightroomLocation.lrmodule
/Applications/Adobe Lightroom/Adobe Lightroom.app
, clique com o botão direito e selecione Show Package Content . O módulo Mapa é /Contents/PlugIns/Location.agmodule
.NOTA IMPORTANTE: Se você deixar a cópia de backup na pasta original, a extensão do arquivo deverá ser alterada (por exemplo, de Location.lrmodule para Location.lrmodule_bak). Caso contrário, ele ainda poderá ser capturado pelo Lightroom em vez do arquivo corrigido.
No Windows, use o Resource Hacker para extrair os recursos Lua que precisamos corrigir:
Location.lrmodule
com Resource HackerLUA
LOCATIONMAPVIEW.LUA
, clique com o botão direito e selecione salvar recurso binAGREVERSEGEOCODESERVICE.LUA
, clique com o botão direito e selecione salvar recurso binLOCATIONDEBUGPANEL.LUA
, clique com o botão direito e selecione salvar recurso bin No Mac, os arquivos Lua podem ser acessados diretamente em Location.agmodule
:
Location.agmodel
e selecione Mostrar conteúdo do pacote/Contents/Resources/
LocationMapView.lua
, AgReverseGeocodeService.lua
e LocationDebugPanel.lua
para o local desejado para correçãoSe ainda não o fez, instale o Python 3.
O script Python patchluastr.py fornecido com este projeto permite substituir certas strings em arquivos Lua.
Para LocationMapView e AgReverseGeocodeService, use o script Python patchluastr.py para substituir a chave da Adobe pela sua chave pessoal da API do Google Maps:
.bin
, caso contrário, o Resource Hacker não o encontrará na próxima etapa. Execute patchluastr.py
da seguinte maneira, substituindo {your-api-key}
pela sua chave de API do Google (sem chaves): 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
. Em seguida, execute patchluastr.py
da seguinte maneira, substituindo {your-api-key}
pela sua chave de API do Google (sem chaves): 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
Com o arquivo LocationDebugPanel, use o script Python patchluastr.py para desabilitar a verificação de assinatura:
patchluastr.py LOCATIONDEBUGPANEL.LUA "nature" "street" -o LOCATIONDEBUGPANEL.bin
patchluastr.py LocationDebugPanel.lua.bak "nature" "street" -o LocationDebugPanel.lua
Se a execução do patchluastr.py falhar com um erro como, por exemplo, TypeError: unsupported operand type(s)
, certifique-se de ter o Python 3 instalado. Se você tiver várias versões do Python instaladas, poderá executar explicitamente o script com o Python 3 prefixando o comando com python3
:
python3 patchluastr.py {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.lua
Experimental : Para usuários do Windows que não desejam instalar o Python, disponibilizei aqui uma versão executável do patchluastr
, que não requer a instalação do Python. A linha de comando é:
patchluastr.exe {original-file} "client=gme-adobesystems" "key={your-api-key}" -o {patched-file}.bin
Nota : Alguns usuários relatam a necessidade de patches adicionais. Se você não conseguir fazer o mapa funcionar ou ele parar de funcionar, verifique as edições 12 e 19. Não vimos esse problema nos EUA, então pode depender do seu país.
No Windows, use o Resource Hacker para substituir os recursos Lua por sua versão corrigida.
Location.lrmodule
com Resource HackerLUA
LOCATIONMAPVIEW.LUA
, clique com o botão direito e selecione Substituir recurso e, em seguida, clique em Selecionar arquivo e navegue até a versão corrigida deste recurso. Em seguida, clique em SubstituirAGREVERSEGEOCODESERVICE.LUA
clique com o botão direito e selecione Substituir recurso e, em seguida, clique em Selecionar arquivo e navegue até a versão corrigida deste recurso. Em seguida, clique em Substituir .LOCATIONDEBUGPANEL.LUA
clique com o botão direito e selecione Substituir recurso e, em seguida, clique em Selecionar arquivo e navegue até a versão corrigida deste recurso. Em seguida, clique em SubstituirLocation.lrmodule
. Dependendo das permissões, pode ser necessário usar Salvar como e copiar o arquivo modificado de volta para C:Program FilesAdobeLightroom
No Mac, copie os arquivos Lua corrigidos de volta para /Applications/Adobe Lightroom/Adobe Lightroom.app/Contents/PlugIns/Location.agmodule/Contents/Resources/
, substituindo os arquivos originais.
O módulo Mapa na instalação do Lightroom agora funciona novamente.
Se você não ativou a API Geo Coding, verá brevemente mensagens de erro. No entanto, a funcionalidade básica de mapa e marcação geográfica ainda funcionará. (Observação: alguns usuários relatam que o módulo de mapa não funcionou para eles, a menos que a API de codificação geográfica esteja ativada)
Certifique-se de ter um backup do Locations.lrmodule antes de brincar com eles!
Os exemplos abaixo utilizam arquivos patch, que podem ser encontrados na pasta hacks
. Caso ainda não o tenha feito, recomendamos clonar ou baixar o projeto completo no Github, por exemplo, clicando no botão verde no canto superior direito desta página.
Observação: a maioria desses hacks baseia-se na API do Google Maps e, portanto, ainda exige a correção da chave da API do Google Maps primeiro.
Este patch substitui o estilo de mapa "Light" pelo OpenStreeMap.
Depois de corrigir a chave API, execute:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/osm.patch -o LOCATIONMAPVIEW-osm.bin
Agora use LOCATIONMAPVIEW-osm.bin
com Resource Hacker em vez de LOCATIONMAPVIEW.bin
, e depois o OpenStreetMap estará disponível como o estilo de mapa "Light".
Crédito pelo hack: @pbb72
Isto é bastante radical; se ativarmos o StreetView, poderemos ver os pinos do mapa em 3D! Não é muito preciso, mas é muito legal.
Já existe um código no arquivo Lightroom para ativar o StreetView, então aparentemente a Adobe está trabalhando nisso, mas talvez o tenha desligado porque não era bom o suficiente.
Para ativar esse recurso oculto, execute:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/streetview.patch -o LOCATIONMAPVIEW-sv.bin
Crédito pelo hack e captura de tela: @pbb72
Alguns locais na Terra oferecem fotos aéreas com perspectiva diagonal (em vez de vista de cima para baixo). Nota: essas fotos não são muito precisas.
Para ativar esse controle, execute:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/tiltmap.patch -o LOCATIONMAPVIEW-tilt.bin
Com este patch, novos controles aparecerão no canto inferior direito se os dados estiverem disponíveis para a localização atual. Talvez seja necessário aumentar o zoom para que o controle apareça.
Crédito pelo hack: @ pbb72
Não podemos adicionar mais mapas ao seletor de estilo de mapa do Lightroom (pensamos). Mas, felizmente, o Google Maps oferece seu próprio seletor de estilo de mapa, que só precisamos ativar.
Uma vez ativado, podemos adicionar nossas próprias entradas ao menu suspenso. Veja os comentários dentro do arquivo de patch para obter mais informações.
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/mapselector.patch -o LOCATIONMAPVIEW-sel.bin
Crédito pelo hack: @pbb72
Este patch exibe erros de JavaScript e mensagens de depuração em uma janela abaixo do mapa, o que será muito útil ao desenvolver mais hacks. Você provavelmente não deseja que isso seja ativado permanentemente, então faça um backup do módulo Locais antes de aplicar este hack.
Execute o script hacks/jsconsole.patch:
patchluastr.py LOCATIONMAPVIEW.bin -p hacks/jsconsole.patch -o LOCATIONMAPVIEW-con.bin
O script faz o seguinte:
Agora aproveite mensagens de erro realmente legíveis!
Crédito pelo hack e captura de tela: @pbb72
No início de 2018, o Google renovou o modelo de preços para incorporar o Google Maps em aplicativos de terceiros, mudando de acesso gratuito ou taxas fixas para preços baseados em transações. O número de solicitações às APIs do Google Maps é contado e, após um limite, uma pequena taxa é cobrada para cada solicitação.
O novo preço do Google não é compatível com produtos licenciados permanentemente. Com o Lightroom clássico, a Adobe só recebeu dinheiro uma vez, mas teria que pagar ao Google cada vez que você usasse o módulo Mapa. Para a Adobe, este não é um modelo de negócio sustentável.
A chave da API do Google Maps incorporada em versões antigas do Adobe Lightroom expirou em 30 de novembro de 2018.
A API JavaScript do Google Maps permite incorporar o Google Maps em sites e aplicativos.
Em dezembro de 2018, a API JavaScript do Google Maps custava 0,007 USD por carregamento de mapa (US$ 7/1.000). Depois que um mapa é carregado, as interações do usuário com o mapa, como panorâmica, zoom ou alternância de camadas do mapa, não geram carregamentos de mapa adicionais.
Além disso, a partir de março de 2023, a versão da API solicitada pelo Lightroom foi obsoleta, o que fez com que o Lightroom carregasse uma versão incompatível, quebrando a funcionalidade dos mapas.
O módulo Lightroom Map chama a API Maps JavaScript para mostrar o mapa dentro do Lightroom. O acesso a esta API é necessário para que o módulo Mapa funcione.
O acesso a esta API é implementado no recurso Lua LOCATIONMAPVIEW.LUA.
A API de geocodificação do Google permite que os aplicativos pesquisem locais e procurem nomes de locais com base em coordenadas GPS.
Em dezembro de 2018, a API de geocodificação do Google custava 0,005 USD por solicitação (5 USD/1.000).
O módulo Lightroom Map chama a API de geocodificação para exibir o nome do local da imagem atualmente selecionada e ao pesquisar um local. O módulo Mapa funciona sem acesso a esta API, mas exibirá brevemente uma mensagem de erro ao entrar no módulo Mapa e ao alternar entre imagens.
Observamos várias chamadas para a API Geocoding ao entrar no módulo Mapa. Também não sabemos quais outras operações criarão chamadas para esta API. Recomendamos ficar atento aos relatórios de uso disponíveis no Google Cloud Platform. Em caso de dúvida ou muito caro, desative o acesso à API de geocodificação removendo o serviço das restrições da API em APIs e serviços > Credenciais.
O acesso a esta API é implementado no recurso Lua AGREVERSEGEOCODESERVICE.LUA.
Para geocodificação reversa (adicionar o nome do local aos metadados da imagem com base em coordenadas conhecidas), o Lightroom acessa a API do Google com a signature
do parâmetro de consulta que parece ser calculada com base na chave de API (expirada) da Adobe e na sua chave de licença do Lightroom. A chamada de API ofensiva se parece com:
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]
Felizmente para nós, embora a API do Google negue o acesso com uma assinatura expirada, a API funciona se signature=[string-of-characters]
for removida do URL ou quando signature
for substituída por um nome de parâmetro desconhecido. Infelizmente, a signature
da string não existe em nenhum arquivo Lua.
Acontece que a funcionalidade fica oculta pela quebra de strings. A assinatura é calculada em LocationDebugPanel.lua
e a nature
da string nesse arquivo faz parte do nome do parâmetro signature
. Substituir nature
por street
alterará a chamada da API para:
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 o Google aceita alegremente.
A partir de 2018, o Google exigirá uma conta no Google Cloud Platform habilitada para faturamento. Todas as transações da API do Google Maps são cobradas nessa conta. Felizmente para nós, o Google dá a cada conta um crédito mensal de 200 USD. Somente as transações que excederem esse limite serão cobradas no seu cartão de crédito.
Os custos e termos de serviço podem diferir consoante o país. Revise cuidadosamente os detalhes no site do Google.
200 USD são suficientes para mais de 28.000 carregamentos de mapas ou 40.000 chamadas para a API de codificação geográfica, o que deve ser suficiente para uso casual do módulo Lightroom Map. Para evitar surpresas, você pode definir orçamentos ou cotas. Os orçamentos enviarão um alerta por e-mail quando um valor configurado for excedido, enquanto as cotas desativarão a API.
Recomendamos configurar um orçamento de 1 USD e um primeiro alerta de 10%. Com esta configuração, o Google enviará um e-mail para você se você gastar mais de 10 centavos do seu próprio dinheiro.