2011-09-02 17 views
16

Mam problem z wyświetlaniem GoogleMap.GoogleMap offsetWidth problem

Oto kod źródłowy www: http://pastebin.com/LjhVbEF7

Kiedy próbuję uruchomić tę stronę, mapa nie jest wyświetlany. Konsola Firebug mówi: Uncaught TypeError: Cannot read property 'offsetWidth' of null

Masz pojęcie, co robię źle? Wiem, że istnieje wiele przykładów pracy w sieci, ale ten kod jest generowany przez specjalny skrypt i nie jestem w stanie w to przeszkodzić. Może zapomniałem ustawić kilka zmiennych?

Dzięki, Mike

=================

EDIT: Kod ten działa tylko wtedy, gdy będę umieścić w JS Definicja funkcji i wywołanie jej w parametrze onload ciała. Czy masz pojęcie, w jaki sposób mogę sprawić, żeby działało bez użycia takiej funkcji i polecenia onload?

Odpowiedz

21

Zdaję sobie sprawę, że jest to prawdopodobnie nieco późno - ale mam nadzieję, że będzie w stanie pomóc komuś się:

W W twoim przypadku funkcja inicjalizacji nie uruchamia się, chociaż może być również spowodowana nieprzypisaniem atrybutów width i height do elementu div kontenera. Jeśli nie chcesz po prostu dodać wydarzenie obciążenia do znacznika body można wykorzystać następujące jQuery:

//Add onload to body 
$(window).load(function(){ 
    initialize() 
}); 
+0

Jaka byłaby alternatywa, jeśli korzystasz z pojedynczej aplikacji? –

+0

Wyobrażam sobie, że wystarczy wywołać inicjowanie, gdy częściowe, z których korzystasz, zostaną w pełni załadowane. – Chris

1

Nie jestem pewien, ale może to być ta linia

map_4e60b1f9c94ae.setCenter(new google.maps.LatLng(0, 0, 1)); 

myślę new google.maps.LatLng trwa tylko dwa atrybuty, szerokość i długość geograficzną.

Spróbuj trochę z witryny mapach

var latlng = new google.maps.LatLng(-34.397, 150.644); 

http://code.google.com/apis/maps/documentation/javascript/tutorial.html

+0

to nie to, ale odkryłem coś nowego. Sprawdź EDYTĘ w głównym poście :) – mbajur

1

spróbować umieścić kod JavaScript w organizmie i po div id="map_canvas"

coś takiego:

<body> 
    <div id="map_canvas"></div> 

    <script type="text/javascript"> 
     var map_4e60b1f9c94ae = new google.maps.Map(document.getElementById("map_canvas"), {"mapTypeId":"roadmap","zoom":10}); 
     map_4e60b1f9c94ae.setCenter(new google.maps.LatLng(0, 0, 1)); 
    </script> 
</body> 
2

Czy prawdopodobnie pracujesz w AngularJS? Byłem i ten problem przetrwał wszystkie powyższe rozwiązania. Powodem było to, że częściowe miejsce, w którym zlokalizowałem mój element div mapy, nie kończyło się w czasie, dlatego element div był pusty, dlatego wystąpił błąd.

Zobacz kątowego sposobem wywołania GoogleMaps tutaj:

Initialize Google Map in AngularJS

2

Większość czasu dostaję ten błąd jest tylko dlatego, że elementem, o których piszę w getElementById nie znajduje się na stronie lub Używam zły identyfikator. Oczywisty błąd, ale upewnij się, że dwukrotnie sprawdziłeś przed nurkowaniem w bardziej zaawansowane rozwiązania.

Powiązane problemy