2016-04-30 12 views
-1

Ich habe die Website für diesen Fehler durchsucht, und obwohl es mehrere Antworten gab, funktionierte keiner von ihnen für mich (oder waren nicht anwendbar).Google Maps OverlappingMarkerSpiderfier Instanziierungsprobleme

Ich benutze Google Maps API v3 und versuche OverlappingMarkerSpiderfier zu implementieren, um mein Problem mit überlappenden Markern zu lösen. Mein Problem ist, dass ich nicht eine Instanz eines OMS erstellen:

function getStateInfo(){ 
     //do stuff 
     var lat = 42.5724; 
     var lon = -74.948052; 
     var map = new google.maps.Map(document.getElementById("map"),{draggableCursor:'pointer'}); 
     var oms = new OverlappingMarkerSpiderfier(map,{markersWontMove: true, markersWontHide: true}); 
     // do more stuff 
     var whiteicon = new GIcon(); 
     whiteicon.image = "images/whiteCircle.png"; 
     whiteicon.iconSize = new GSize(11, 11); 
     whiteicon.iconAnchor = new GPoint(6, 6); 
     whiteicon.infoWindowAnchor = new GPoint(6,6); 

     var marker = new GMarker(new GLatLng(lat,lon), { 
      draggable: false, 
      title: ($(this).find('COMPANY_NAME').text()), 
      icon: whiteicon, 
      map: map 
     }); 
     oms.addMarker(marker); 
    } 

ich die folgende Fehlermeldung erhalten:

InvalidValueError: setMap: not an instance of Map; and not an instance of StreetViewPanorama 

ich überprüft habe, dass der Fehler zum Zeitpunkt der Instanziierung auftritt und nicht bei der Markierung Schöpfung /Platzierung. Für Gründlichkeit, hier ist der Code, den ich Marker zu verwenden, ich versuche zu setzen:

var marker = new GMarker(new GLatLng(lat,long), { 
draggable: false, 
title: ($(this).find('COMPANY_NAME').text()), 
icon: whiteicon, 
map: map}); 

...

oms.addMarker(marker); 

Ich habe auch eine andere Kopie von OMS im Falle abgerufen, dass es etwas wackelig mit dem Original (heruntergeladen von GitHub).

Wenn Sie mehr Code sehen müssen, lassen Sie mich wissen, was Sie suchen. Ich habe gerade die Zeilen geschrieben, die das Problem darstellen. Meine Karte wird korrekt ohne OMS generiert - es ist nur die Instanziierung von oms.

+0

Bitte geben Sie eine [Minimal, Complete, geprüft und Lesbare Beispiel] (http://stackoverflow.com/help/mcve), das zeigt, Das Thema. – geocodezip

+0

Während Sie gesehen haben, dass Sie "Google Maps API v3" verwenden, ist der veröffentlichte Code Google Maps JavaScript API v2-Code. Diese Version der API ist veraltet und sollte nicht für neuen Code verwendet werden. Das könnte auch Ihr Problem mit dem Spiderifier erklären. – geocodezip

+0

Danke! Sie sind genau richtig. – dneimeier

Antwort

1

Sie verwenden eine veraltete Google Maps JavaScript API v2 Karte mit einem Google Maps JavaScript API v3-Spiderifier.

Dies ist Code v2 (GSize, GPoint, GLatLng):

whiteicon.iconSize = new GSize(11, 11); 
whiteicon.iconAnchor = new GPoint(6, 6); 

var marker = new GMarker(new GLatLng(lat,lon), {