API API V3 di Google Maps - InfoBox personalizzato per Poligoni multipli
-
10-12-2019 - |
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
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