Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

229
Visualizações
Cómo evitar que un usuario inicie varias llamadas a la API de Google Maps

He encontrado un problema con Google Maps.

Tengo un formulario HTML que muestra una gran cantidad de datos para un usuario. El formulario se divide en un diseño de acordeón, y cada acordeón es responsable de mostrar diferentes aspectos de los datos del usuario.

Una de estas concertinas contiene la dirección del usuario y un mapa de Google con varios pines que representan información pertinente.

Si el formulario está cargado y la concertina está cerrada, entonces el mapa de Google <div> no tiene una altura vertical sobre la cual calcular la configuración del zoom y termino con un mapa que está ampliado hasta la extensión del planeta. Si la concertina está abierta cuando se carga el formulario, el zoom funciona bien (porque el mapa <div> tiene altura).

Esta es una característica/error bien conocido. Una forma de evitar esto es cargar el mapa de Google cuando el usuario abre la concertina o si la concertina está abierta cuando se carga el formulario.

Lo que necesito lograr: necesito evitar múltiples llamadas a Google Maps para 'recargar' el mapa si el usuario abre y cierra la concertina varias veces (sin actualizar el formulario).

Aquí hay un violín: https://jsfiddle.net/fdnuopzv/4/

Como puede ver, el mapa de Google se carga CADA vez que se abre la concertina. Necesito detectar que el mapa existe para que muestre el mapa existente en lugar de buscar uno nuevo.

Intenté usar:

 if (!google.map) { map_init(); }

pero esto no tiene el efecto deseado.

Como punto de interés, si mueve la línea map_init() de la línea 10 a la línea 65, puede ver cómo una altura cero rompe el zoom de Google.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto es bastante bajo, pero una opción es buscar un iframe en el contenedor...

 if ($('#accordianarea' + thisId).find('iframe').length===0) map_init();

https://jsfiddle.net/kinglish/cw2Lamxr/5/

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda