Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

235
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!