Google Map ne montre que partiellement
La Carte de Google, j'ai seulement être rendue partiellement et est centré sur le point incorrecte (elle devrait être centrée sur la marque). Voir ci-dessous:
Maintenant pour ajouter un peu plus de détails:
- Il fonctionne très bien sous IE
- Il ressemble à la capture d'écran dans FF et Chrome.
- En Chrome ist fonctionne dès, que j'ouvre la console développeur
Surtout le dernier point est celui que je vais vous demandez-vous le plus à propos. Je suppose que l'ouverture de la console développeur de ré-exécute du JavaScript.
Donc: puis-je appeler une fonction de re-exécuter le code JavaScript, la façon dont les développeurs de la console?
C'est le code:
<script type="text/javascript">
{literal}
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map")); //, { size : {width:600,height:600} }
map.addControl(new GLargeMapControl3D());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.setCenter(new GLatLng(51.17689812200107, 9.84375), 5);
map.checkResize();
var geocoder = new GClientGeocoder();
function showPoint(lat, lon) {
if (lat != "" && lon != "") {
var point = new GLatLng(lat, lon);
map.setCenter(point, 10);
var marker = new GMarker(point, {draggable: true});
GEvent.addListener(marker, "dragstart", function() {
//map.closeInfoWindow();
});
GEvent.addListener(marker, "dragend", function() {
var newPoint = marker.getLatLng();
$('#lat').val(newPoint.lat());
$('#lon').val(newPoint.lng());
//marker.openInfoWindowHtml("Neue Koordinaten Lat: "+ newPoint.lat() +" Lon: "+ newPoint.lng());
});
map.addOverlay(marker);
}
}
{/literal}showPoint("{$gmap_lat}", "{$gmap_lon}");{literal}
}
}
{/literal}
C'est là où j'ai mis la div:
<fieldset style="-moz-border-radius: 1em; -webkit-border-radius: 1em;">
<legend>Karte</legend>
<div id="map" title="Lage von '{$name}'"><br>Die Karte wird geladen...<br><br>Hinweis: Damit dies funktioniert müssen Sie in Ihrem Browser JavaScript aktivieren</div>
Falls sich der Marker nicht auf der richtigen Position befinden sollte, bewegen Sie diesen mit Ihrer Maus auf die richtige Position.
<br>Länge: <input type="text" id="lat" name="lat" value="{$gmap_lat}">
Breite: <input type="text" id="lon" name="lon" value="{$gmap_lon}">
</fieldset>
Et sur la div le CSS suivantes s'appliquent:
source d'informationauteur JochenJung
Vous devez vous connecter pour publier un commentaire.
Trouvé le problème. Je me cachais le bloc, GMaps était dans
Mais il semble un bloc contenant la carte ne peut pas être cachée, lorsque GMaps charges.
Alors je l'ai changé comme ça
et tout a fonctionné. Mais comme je viens de vous montrer "etape 1" au début, je ne
une fois la carte chargée.
C'est vraiment étrange comportement de Chrome et FF, mais je suis content que ça fonctionne avec cette solution de contournement. Merci pour votre aide.
J'ai trouvé que tout masquer et afficher les opérations qui sont effectuées sur les div avec google map en utilisant css "display" de la propriété (ou jQuery hide() et show ()) provoquant partiellement la vue de la carte.
Au lieu de "display" - je utiliser la "visibilité" (caché, visible) et tout va bien. Ce que j'ai prévu était de montrer la carte sur une fenêtre popup. Cependant la "visibilité", prend de l'espace, même lorsque ses de définir l'attribut caché, mais depuis que je utilisez "z-index" pour la popup, il n'a pas d'incidence sur une couche de base (0 z-index).
Ce qui concerne
Bronek
Cela peut aider...
Google Maps a pas rendu complètement sur la page?
Essayez google.cartes.de l'événement.déclencheur de la carte, "redimensionner");
J'ai trouvé une solution simple pour l'partiellement chargé de google map. Généralement elle est causée par le onLoad() appelée à une époque où le reste de la page (y compris votre élément de la carte) n'est pas complètement chargé. Cela provoque partielle chargement de carte. Un moyen simple de contourner ce problème est de changer votre body onLoad de la balise de l'action comme suit:
ce attend 2 sec. avant le JavaScript Google accède à la bonne taille les attributs.
Espérons que cela aide 🙂
BTW, c'est mon top Javascipt part dans le cas d'errance ( exactement comme décrit dans Google Documents, mais parce que je suis l'appel de la Latitude et de la Longitude à partir des variables PHP, donc le PHP extraits 🙂
Appel à Initialize() sur pagebeforeshow événement et essayer ce