2010-12-16 130 views
1

Est-ce que quelqu'un sait s'il existe un moyen de spécifier la taille d'une google map indépendamment de son conteneur div? La raison pour laquelle je demande est que ma carte ne se centre pas exactement sur le point de latlng. Je charge la carte dans ma page dans un iframe qui a une largeur et une hauteur (400 x 200). dans le cadre que je tire, la carte Google est dans un div de taille (400 x 200) aussi. Mais c'est légèrement décalé à chaque fois.Google Map v3 ne se centre pas

mon code est le suivant

function initializeMap(latVal, lngVal, titleStr, merchantName) { 
var latlng = new google.maps.LatLng(latVal, lngVal); 
var myOptions = { 
     zoom: 15, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 

var contentString = '<span style="font-size:12pt;">' + merchantName + '</span><span style="font-size:10pt;">' + titleStr + '</span>'; 
var infowindow = new google.maps.InfoWindow({ 
    content: contentString 
}); 
var marker = new google.maps.Marker({ 
    position: latlng, 
    title:titleStr 
}); 
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions); 
google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(map,marker); 
}); 
// To add the marker to the map, call setMap(); 
marker.setMap(map); 
} 

J'utilise v3 de l'api google maps et je cherchais juste pour quelques conseils sur la façon dont je pourrais être en mesure de centrer ma carte correctement. Comme mentionné, le script ci-dessus (et map_canvas div) est chargé dans ma page principale dans un iframe.

Un grand merci pour votre aide

+0

fixe votre bloc de code – Hamish

+1

J'ai eu ce problème en utilisant les cartes standards embeded lorsque la div parent est caché. Le marqueur était toujours juste à l'extérieur de la fenêtre. J'ai dû charger la carte après que la div ait été montrée. – Keyo

+0

Keyo - Merci beaucoup - c'était la réponse à mon problème. Je vous remercie! –

Répondre

1

Si je lis correctement votre script, vous êtes l'initialisation de la carte, en ajoutant un marqueur puis en ouvrant la fenêtre d'information du marqueur. Notez la documentation pour InfoWindowOptions:

Par défaut, la fenêtre d'information parcourt la carte afin qu'elle soit entièrement visible à l'ouverture.

Définissez la disableAutoPan propriété sur false lors de la création du InfoWindow pour l'empêcher de repositionner la carte:

var infowindow = new google.maps.InfoWindow({ 
    content: contentString, 
    disableAutoPan: false 
}); 
+0

Cela a fait l'affaire. Je n'aurais jamais repéré celui-là! En effet, merci. – Joeblackdev