Domanda

Questa è la mia prima volta che lavora con l'API di Google Maps.Ho una mappa in stile con più poligoni che ognuno ha bisogno del proprio INFOBOX.I infobox devono essere disegnati.Il mio problema è che non riesco a far funzionare gli InfoBox.Ho cercato una soluzione per giorni ora, ho persino provato questo http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/examples/infobox-basic.html Devo ovviamente fare qualcosa di sbagliato.

Ecco il mio codice: http://pastebin.com/m23ppxpn

È stato utile?

Soluzione

Ho notato che collegando un infobox a un poligono risultati in questo errore in infobox.js

Uncaught TypeError: Object #<V> has no method 'getPosition'
.

Potrebbe essere perché un poligono rappresenta un'area, mentre un indicatore rappresenta un punto.Suggerisco di creare un singolo indicatore invisibile da qualche parte all'interno dei poligoni per ancora ad ancorare ciascun infobox.

Con questa idea, ho aggiunto un infobox al poligono Australia.Il listener dei clic è ancora creato per il poligono, ma apre l'INFOBOX legato al marker invisibile.

// ... this is near the end of your code...

australia_new_zealand.setMap(map);
google.maps.event.addListener(australia_new_zealand, 'mouseover', function() {
    this.setOptions({fillColor: "#28d1e9"}); 
});
google.maps.event.addListener(australia_new_zealand, 'mouseout',function(){
 this.setOptions({fillColor: "#06376a"});   
});

      // marker inside the Australia polygon, LatLng was manually defined
      var australia_new_zealand_center = new google.maps.Marker({
        map: map,
        position: new google.maps.LatLng(-24.5271348225978, 134.296875),
        visible: false
      });

      var boxText = document.createElement("div");
      boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: yellow; padding: 5px;";
      boxText.innerHTML = "City Hall, Sechelt<br>British Columbia<br>Canada";

      var myOptions = {       
        content: boxText,
        maxWidth: 0,
        pixelOffset: new google.maps.Size(-140, 0),
        zIndex: null,
        boxStyle: {  background: "url('tipbox.gif') no-repeat", opacity: 0.75, width: "280px" } ,
        closeBoxMargin: "10px 2px 2px 2px",
        closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif",
        infoBoxClearance: new google.maps.Size(1, 1),
        isHidden: false,
        pane: "floatPane",
        enableEventPropagation: false
      }

      // listener responds to a click inside polygon
      google.maps.event.addListener(australia_new_zealand, "click", function (e) {
        ib.open(map, australia_new_zealand_center);
      });

      var ib = new InfoBox(myOptions);

//(end) REGION - AUSTRALIA NEW ZEALAND
}  
.

Altri suggerimenti

Prova questo parco giochi con esempi Parco giochi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top