2012-02-24 11 views
7

Próbuję użyć Google Maps API v3 ale mam zawsze błędemGoogle maps api v3 DrawingManager żadna praca

Dodałem skrypt na stronie:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing"></script> 

i mam realizowane:

var drawingManager = new google.maps.drawing.DrawingManager({ 
     drawingMode: google.maps.drawing.OverlayType.MARKER, 
     drawingControl: true, 
     drawingControlOptions: { 
     position: google.maps.ControlPosition.TOP_CENTER, 
     drawingModes: [google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE] 
     }, 
     /*markerOptions: { 
     icon: new google.maps.MarkerImage('http://www.example.com/icon.png') 
     },*/ 
     circleOptions: { 
     fillColor: '#ffff00', 
     fillOpacity: 1, 
     strokeWeight: 5, 
     clickable: false, 
     zIndex: 1, 
     editable: true 
     } 

mam ten sam błąd zawsze:

Uncaught TypeError: Cannot read property 'DrawingManager' of undefined

Odpowiedz

0

Oprócz tego, że przykładowy kod nie jest kompletny (domyślam się, że właśnie pominąłeś nawiasy zamykające po skopiowaniu), nie widzę niczego oczywistego. Nie korzystałem z biblioteki rysunków, ale wygląda na to, że poprawnie podążasz za dokumentacją. Powiedziałbym, że użyj Firebug, by sprawdzić, jaka JavaScript jest ładowana z Google i zobaczyć, czy wspomina coś o klasie DrawingManager.

9

Wystąpił ten sam błąd i znalazłem go. Użyj "https" zamiast "http" ...

< script type="text/javascript" 
src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing"> 
</script> 
+0

Byłoby wspaniale, gdyby mógł Pan podać wyjaśnienie, jak również. – asheeshr

12

"Koncepcje w tym dokumencie dotyczą funkcji dostępnych tylko w bibliotece google.maps.drawing. Ta biblioteka nie jest ładowany domyślnie podczas załadowania API Maps Javascript, ale musi być wyraźnie określony przez zastosowanie bibliotek bootstrap parametru: "

http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing

+0

Oszczędzająca czas odpowiedź. Google jest inteligentny, dzięki czemu jest łatwy w użyciu. Dzięki – M98

0

spróbować dodać

}); 

na koniec .

nadzieję, że to pomaga.

1

Wygląda na to, że Twój kod jest wykonywany przed załadowaniem biblioteki. Jeśli ładujesz się asynchronicznie, powinieneś dołączyć bibliotekę do tego samego interfejsu API , która określa wywołanie zwrotne do funkcji inicjalizacji mapy (która prawdopodobnie zawiera/wywołuje fragment kodu). Jeśli funkcja inicjalizacji nazywa initMap następnie to zrobić:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY?libraries=drawing&callback=initMap"></script>

Mam ten sam błąd, posiadający 2 znaczniki skryptów; taki, który ładuje bibliotekę rysunków (taką jak twoja, bez wywołania zwrotnego), a drugą tylko z wywołaniem zwrotnym. Naprawiłem go po Google uprzejmie napisał w mojej konsoli

You have included the Google Maps API multiple times on this page. This may cause unexpected errors.

Powiązane problemy