Haritaya birden çok tıklanabilir işaretçi koymak için Google Maps Utility Library v3 kullanıyorum. Bir Marker
tıklandığında, ilgili Marker
'a özgü bir InfoBox
açmalıdır.Google maps yardımcı kitaplığı v3 ile döngü için dinleyicilerin tıklatılması için InfoBox'lar nasıl bağlanır?
onlardan her birine bir 'click'
olay dinleyicisiyle harita üzerinde doldurulan işaretleri almak mümkün ama sorun kendi ilgili Marker
için her özel InfoBox
bağlama yaşıyorum. Tıkladığım her simge, döngüde oluşturduğum son InfoBox
'u açar. Ben yanlış gidiyorum
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerwithlabel/src/markerwithlabel.js"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js"></script>
<script>
function initialize() {
var crimes = <?php echo json_encode($crimes); ?>;
var count = crimes.length;
var myCoordinates = new google.maps.LatLng(40.7127837, -74.00594130000002);
var myOptions = {
zoom: 14,
center: myCoordinates,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var marker, infobox;
var map = new google.maps.Map(document.getElementById('map-canvas'), myOptions);
for(x = 0; x < count; x++)
{
var coordinates = new google.maps.LatLng(parseFloat(crimes[x].lat), parseFloat(crimes[x].lng));
marker = new MarkerWithLabel({
title: crimes[x].type,
clickable: true,
position: coordinates,
icon: ' ',
map: map,
labelContent: '<a type="button" class="btn btn-transparent fa fa-ambulance" style="color:rgba(144,15,15,0.8);"></a>',
labelClass: "labels"
});
infobox = new InfoBox({
content: crimes[x].details,
disableAutoPan: true,
isHidden: false,
maxWidth: 150,
pane: "floatPane",
enableEventPropagation: true,
pixelOffset: new google.maps.Size(-140, 0),
zIndex: null,
boxStyle: {
border: "2px solid black",
background: "#333",
color: "#FFF",
opacity: 0.85,
padding: ".5em 1em",
width: "200px",
},
closeBoxMargin: "2px 2px 2px 2px",
closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif",
infoBoxClearance: new google.maps.Size(1, 1)
});
listener = new google.maps.event.addListener(marker, 'click', function() {
infobox.open(map, this);//I think this is where I'm doing it wrong. How do I tie each specific infobox to its respective click listener?
map.panTo(coordinates);
});
marker.setMap(map);
}
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
bilen var mı yoksa farklı nasıl yapabileceğini: Burada
benim kodudur?