2010-06-18 5 views
1

J'ai une carte Google Map (API 2) qui fonctionnait correctement en tant que page autonome.GMap dans l'iframe excentré

Cependant, lorsque je charge la page de la carte dans un iframe (avec Thickbox), la carte obtient décentré:
normalement il est centré sur l'Allemagne et dans le iframe, il se concentre sur l'Iran, au lieu.

Comment rendre le centre de la carte correctement?


Mes suppositions:

Le problème peut résulter du temps de chargement iframe. Je suppose que le script calcule la taille de la fenêtre en fonction de la taille de l'iframe quand il est encore en train de se charger. C'est étrange puisque je charge la carte quand le document est prêt. Par exemple, lorsque j'actualise l'iframe déjà chargé, le centre revient en Allemagne par exemple. Un échantillon de code chargeant la carte

Répondre

1

Ma conjecture s'est révélée être bonne. La raison était la taille d'iframe calculée pendant son chargement.

Le correctif est facile: il suffit de spécifier le size dans GMapOptions - alors la carte saura toujours quelle est son conteneur.

Dans mon cas, cela signifiait changer

map = new GMap2(document.getElementById("map_canvas")); 

à

map = new GMap2(document.getElementById("map_canvas"), { 
    size:new GSize(970,500), 
});