Eu tenho uma página e um mapa do Google está dentro de uma div oculta em primeiro lugar. Em seguida, mostro a div depois de clicar em um link, mas apenas a parte superior esquerda do mapa aparece.
Eu tentei ter esse código executado após o clique:
map0.onResize();
ou:
google.maps.event.trigger(map0, 'resize')
alguma ideia. Aqui está uma imagem do que vejo depois de mostrar a div com o mapa oculto.
Respostas:
Apenas testei e aqui está como eu me aproximei. Bem direto, deixe-me saber se você precisar de algum esclarecimento
HTML
CSS
Javascript
fonte
Eu estava tendo o mesmo problema e descobri que, quando mostra o div, chame
google.maps.event.trigger(map, 'resize');
e ele parece resolver o problema para mim.fonte
Se você não possui um mapa variável disponível, ele deve ser o primeiro elemento (a menos que você tenha feito algo estúpido) no
div
que contém GMAP.fonte
Eu tinha um mapa do Google dentro de uma guia Bootstrap, que não estava sendo exibida corretamente. Esta foi a minha correção.
fonte
'a[href="#profileTab"]'
parastep-2
qual é o nome do DIV que contém o mapa DIV.Como atualizar o mapa quando você redimensiona sua div
Não basta apenas ligar.
google.maps.event.trigger(map, 'resize');
Você deve redefinir o centro do mapa também.Como ouvir o evento de redimensionamento
Angular (recolhimento de ng-show ou ui-bootstrap)
Vincule diretamente à visibilidade do elemento, e não ao valor vinculado ao ng-show, porque o $ watch pode disparar antes que o ng-show seja atualizado (para que a div ainda fique invisível).
jQuery .show ()
Use o retorno de chamada incorporado
Bootstrap 3 Modal
fonte
Se você tem um Google Map inserido copiando / colando o código iframe e não deseja usar a API do Google Maps , esta é uma solução fácil. Basta executar a seguinte linha javascript quando você mostrar o mapa oculto. Ele pega o código HTML do iframe e o insere no mesmo local, tornando-o novamente:
Versão jQuery:
O HTML:
O exemplo a seguir funciona para um mapa inicialmente oculto na guia Bootstrap 3:
fonte
https://www.google.com/maps/embed/v1/place?..
Também é possível disparar o evento de redimensionamento da janela nativa.
O Google Maps será recarregado automaticamente:
fonte
Eu tive o mesmo problema, o
google.maps.event.trigger(map, 'resize')
não estava funcionando para mim.O que fiz foi colocar um cronômetro para atualizar o mapa depois de colocar visível o
div
...Não sei se é a maneira mais conveniente de fazer isso, mas funciona!
fonte
Com o jQuery, você pode fazer algo assim. Isso me ajudou a carregar um mapa do Google no Umbraco CMS em uma guia que não seria visível imediatamente.
fonte
Minha solução é muito simples e eficiente:
HTML
CSS
Jquery
fonte
Ou, se você usa o gmaps.js , ligue para:
quando sua div é mostrada.
fonte
Eu acho que a pergunta original é com um mapa que é inicializado em uma div oculta da página. Resolvi um problema semelhante redimensionando o mapa na div oculta após o documento estar pronto, depois que ele foi inicializado, independentemente do status de exibição. No meu caso, eu tenho 2 mapas, um é mostrado e outro é oculto quando eles são inicializados e não quero inicializar um mapa toda vez que é mostrado. É um post antigo, mas espero que ajude quem estiver procurando.
fonte
Descobri que isso funciona para mim:
esconder:
mostrar:
fonte
Se usado nas guias do Bootstrap v3, o seguinte deve funcionar:
onde
tab-location
é o ID da guia que contém o mapa.fonte
Assim como John Doppelmann e HoffZ indicaram, monte todo o código da seguinte maneira na sua função de exibição de div ou no evento onclick:
Funcionou perfeitamente para mim
fonte
Minha solução foi:
CSS:
jQuery:
fonte
Não gostei que o mapa fosse carregado apenas depois que a div oculta se tornasse visível. Em um carrossel, por exemplo, isso realmente não funciona.
Essa é a minha solução é adicionar classe ao elemento oculto para exibi-lo e ocultá-lo com a posição absoluta, renderize o mapa e remova a classe após o carregamento do mapa.
Testado no carrossel de bootstrap.
HTML
<div class="item loading"><div id="map-canvas"></div></div>
CSS
JS
fonte
use esta linha de códigos quando quiser mostrar o mapa.
fonte
fonte
Primeiro post. Minha div do googleMap estava dentro de uma div de contêiner com {display: none} até a guia ser clicada. Teve o mesmo problema que OP. Isso funcionou para mim:
Cole esse código dentro e no final do seu código, onde a guia div do contêiner é clicada e revela sua div oculta. O importante é que sua div de contêiner tenha que estar visível antes que a inicialização possa ser chamada.
Tentei várias soluções propostas aqui e em outras páginas e elas não funcionaram para mim. Deixe-me saber se isso funciona para você. Obrigado.
fonte
Adicione este código antes da div ou passe-o para um arquivo js:
Este evento será acionado após o carregamento da div, para atualizar o conteúdo do mapa sem precisar pressionar F5
fonte
Ao mostrar o mapa, estou geocodificando um endereço e definindo o centro dos mapas. o
google.maps.event.trigger(map, 'resize');
não funcionou para mim.Eu tive que usar um
map.setZoom(14);
Código abaixo:
fonte
fonte