<script type="text/javascript"> function initialize() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map_canvas")); var lat = '<?= $this->geo_lat;?>'; var lon = '<?= $this->geo_long;?>'; var punkt = new GLatLng(lat, lon); var marker = new GMarker(punkt, {draggable: true}); var coordsform = document.getElementById("coordsform"); map.setCenter(punkt, 13); map.addOverlay(marker); GEvent.addListener(marker, "dragend", function() { $.post("/zf/ajax/coords/", {lat: marker.getPoint().y, lon: marker.getPoint().x}, function(data){ if(data != "OK") { alert("Data Loaded: " + data); } }); }); } } $(document).ready(function() { initialize(); }); </script>
a tak wygląda sama mapa po załadowaniu. Nie ważne jakie dam koordynaty: marker laduje w gornym lewym rogu (zobaczyć go można po przesunięciu mapy), a pozostałe kafelki mapy dopiero po chwili i przesunięciu się ładują.

To samo w nowym FF i IE 7.
Jedyne co jest "nietypowe", to że dałem deklaracje funkcji initialize w ramach <body> i tam ją wywołuję przez jQuery po załadowaniu dokumentu, a z taga <body> wywalilem onLoad.
---
A doszedłem przed chwilą do jeszcze jednej śmiesznej rzeczy. W FF jeśli wejdę na adres w ten sposob:
strona/index.php
to faktycznie gmap ma błędy
natomiast jezeli wejde o tak:
strona/index.php#mapa
(czyli przechodząc do anchora z divem, gdzie jest mapa) to wszystko laduje sie ok. taby robione są za pomocą jQueryUI, czy jest miedzy nim a gmaps jakis konflikt?
Znalazłem rozwiązanie: wystarczało do obiektu gmap2 dodać parametr
Kod
var map = new GMap2(document.getElementById("map_canvas"),{size:new GSize(500,300)});