Exibindo arquivo local no Google Maps?

46

Como posso exibir um arquivo KML / KMZ no Google Maps sem um servidor Web público?

Chris M
fonte
O aspecto irônico da sua pergunta é que você está conectado à Internet. Como você obtém o Google Maps?
22410 CrazyEnigma
por "sem um servidor público", você quer dizer que o kml precisa estar na máquina local ou que você não precisa se preocupar em instalar / configurar / comprar um site público? E o mapa personalizado que você deseja criar precisa ser visto por outras pessoas ou apenas por você?
27510 Matthews wilkie
A situação é "eu posso acessar a internet, mas a internet não pode acessar a mim". Nesse caso, você não pode usar o suporte a arquivos KML na API do Google Maps.
Christopher Schmidt
display-kml.appspot.com é outra opção, suponho.
Karl Henselin 29/09
Você pode baixar KML / KMZ para o Google Drive, ele suporta nativamente visualização docs.google.com/file/d/0B9sBXp66G86xWmlRbkZiYlRNdmc/edit
KindDragon

Respostas:

32

Para abrir um arquivo KML ou KMZ no Google Maps, anexo o seguinte prefixo a um link online do arquivo KML:

http://maps.google.com/maps?q=

Normalmente, coloco o KML ou KMZ na minha caixa de depósito e copio / colo o link público no final do trecho acima. Depois, posso enviar por e-mail esse link para quem quiser, ou publicá-lo online em algum lugar. Também usei o Google Docs para armazenar os KMLs e uma página de Links no meu site para distribuir os links.

Exemplo:

Caminhada na Montanha Harvey:

http://maps.google.com/maps?q=http://dl.dropbox.com/u/359140/KML/HarveyMountainHike.kmz

Don Meltz
fonte
14
Essa abordagem parece não funcionar mais. Ao clicar no link acima, recebo o google maps com o link do seu dropbox na caixa de pesquisa.
Derek Greer
7
Trabalhar com o KML em maps.google.com será descontinuado em breve: support.google.com/maps/answer/41136?hl=pt-BR
Koen.
1
Descobri que você pode simplesmente clicar no link de compartilhamento do Google Drive e o KMZ será carregado automaticamente no Google Maps sem nenhuma outra necessidade de extensão. Testado no Chrome e no Explorer.
Emil Brundage
10
O Google Maps quebrou / descontinuou esse recurso.
hendry
5
Abril de 2017 ATUALIZAÇÃO: você pode importar diretamente um arquivo KML para o recurso "Meus Mapas" do Google Maps e ele exibirá todos os seus dados KML em um formato do Google Maps.
precisa saber é
31

Isso é para algo que você deseja disponibilizar permanentemente para outras pessoas ou apenas para visualização temporária?

Um dos truques que eu uso com frequência é colocar o arquivo KML na minha pasta pública do DropBox (encontrar alguém com uma conta para indicar você; ele receberá 250Mb extras para você e eles) e colar esse URL no Google Maps para visualize e compartilhe com outras pessoas a curto prazo.

A longo prazo, você tem a opção de criar um novo mapa "Meus Mapas" do Google e importar KML, KMZ ou GeoRSS para ele. Depois de concluído, você pode compartilhar o mapa resultante usando as ferramentas padrão do My Maps.

Você também pode usar o Google Docs para armazenar e compartilhar arquivos KML com outras pessoas. Minha técnica recomendada é:

  1. Crie uma pasta e marque-a para acesso público.
  2. Use o link Upload para enviar seus arquivos KML para esta pasta sem conversão e compartilhados com o mundo
  3. Vá para o link Download, copie-o e cole-o na caixa de pesquisa do Google Maps

Gostaria de saber quanto tempo até o Google permitir a edição interativa e colaborativa de documentos KML via Google Docs? Agora isso seria legal ...

JasonBirch
fonte
Uma coisa a ter em conta: se você alterar o arquivo (e isso pode incluir "salvar como" com o mesmo nome de arquivo), o Dropbox alterará a ID do arquivo (a parte do hash) no link. A abertura e o salvamento regulares (em um editor de texto, por exemplo) não parecem apresentar problemas.
heltonbiker
26

Você pode enviar um arquivo KML para o Google Maps:

  1. Faça login na sua Conta do Google e acesse http://maps.google.com
  2. Clique em My Maps
  3. Clique Create a new map
  4. Adicionar título e descrição
  5. Clique Import
  6. Clique em Choose file, selecione o KML a ser carregado e clique emUpload from file

Meus mapas

Crie um novo mapa

Importar

Envio

Agora você está pronto :)

fmark
fonte
Interessante, esta é a resposta que mais aborda diretamente a questão.
MarkBostleman
Não funciona para o KMZ que contém um arquivo KML que excede 5 MiB.
Sussch
6

Você não pode

Google:

A partir de fevereiro de 2015, os mapas criados no Google Maps clássico - https://maps.google.com/ - não carregarão mais arquivos KML / KMZ de sites externos. No entanto, sabemos que os arquivos KML são uma maneira realmente útil de trabalhar com dados geográficos. Por isso, adicionamos o KML ao Google My Maps e continuamos a oferecer suporte a esse formato com outras APIs do Google Maps. Esperamos que uma dessas opções atenda às suas necessidades.

https://developers.google.com/maps/support/kmlmaps

Eu costumava exibir arquivos .kml e .kmz locais no google maps, mas agora não posso :(

Sergio
fonte
1
Como você mencionou, o suporte foi transferido para Meus Mapas.
MastaBaba
Os arquivos KML podem não importar todos os dados, incluindo: balões de informações com HTML ou JavaScript, tours KML, elementos baseados em tempo, sobreposições de imagem e tela, MultiGeometries, modelos 3D, desenvolvedores de
Dale
4

A resposta curta é: você não pode. O uso de um arquivo local com o aplicativo da web antigo e simples do Google Maps violaria o sandbox do navegador e a mesma política de origem .

Uma opção, por mais cara que seja, é que você poderá usar o Google Maps Premier para hospedar o maps-x.js no sistema de arquivos local, juntamente com o KML associado.

Outra opção é usar um servidor Web público existente, como o Google Sites .

Além disso, lembre-se de que você pode usar o OpenLayers como uma alternativa ao Google Maps Premier.

Jon Bringhurst
fonte
2
Os OpenLayers serão limitados (em navegadores modernos) a URLs que não são de arquivo, pelo menos no Firefox, mas você pode configurar um servidor da web local / não público e usá-lo. Observe que o "Sandboxing" não é realmente o motivo pelo qual você não pode fazer o que deseja com o Google: se uma página HTML estiver hospedada no servidor local, o JS poderá ler um arquivo no servidor local. Você só não pode porque o Google analisa todos os arquivos no servidor - portanto, o servidor deles precisa conversar com o servidor, o que não pode.
Christopher Schmidt
Ah, bom argumento. Eu estava pensando na linha de um arquivo no sistema de arquivos local, em vez de um httpd local.
precisa