Google Maps - centre de la carte sur le marqueur, cliquez
J'ai le code suivant pour la passation de plusieurs marqueurs sur une carte google.
Ce que je veux faire, c'est lorsque l'utilisateur clique sur un marqueur, il effectue un zoom avant, puis les centres de la carte à la position du repère (c'est ce qui ne fonctionne pas - vers la fin du code du setMarkers fonction).
Des idées?
var infowindow = null;
var sites = [];
var partsOfStr = [];
var partsOfStr2 = [];
var bounds;
$(document).ready(function () {
$("select[id*='coordList']").find("option").each(function () {
partsOfStr = $(this).val().split(',');
partsOfStr2 = $(this).text().split('^');
sites.push([partsOfStr2[0], parseFloat(partsOfStr[0]), parseFloat(partsOfStr[1]), partsOfStr[2], partsOfStr2[1], partsOfStr2[2], partsOfStr2[3], partsOfStr[3], partsOfStr[4], partsOfStr[5]]);
});
initialize();
});
function initialize() {
bounds = new google.maps.LatLngBounds();
var mapOptions = {
zoom: 6,
center: new google.maps.LatLng(54.57951, -4.41387),
scrollwheel: false,
mapTypeId: google.maps.MapTypeId.HYBRID
}
var map = new google.maps.Map(document.getElementById('map'), mapOptions);
setMarkers(map, sites);
infowindow = new google.maps.InfoWindow({
content: "loading..."
});
google.maps.event.addListener(infowindow,'closeclick',function(){
map.setCenter(new google.maps.LatLng(54.57951, -4.41387));
map.setZoom(6);
});
}
function setMarkers(map, markers) {
for (var i = 0; i < markers.length; i++) {
var sites = markers[i];
var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
var marker = new google.maps.Marker({
position: siteLatLng,
map: map,
title: sites[0],
html: "<div class='mapDesc'>content here...</div>"
});
google.maps.event.addListener(marker, "click", function () {
infowindow.setContent(this.html);
infowindow.open(map, this);
map.setCenter(marker.getPosition()); //NOT WORKING!!!!!!!
map.setZoom(10);
});
bounds.extend(new google.maps.LatLng(sites[1], sites[2]));
map.fitBounds(bounds);
}
}
- Ce n'
sites
ressembler avantinitialize()
est appelé? - Sites est un tableau avec toutes les infos pour les positions des marqueurs et l'infowindow de données. Ce n'est certainement pas ce qui cause le problème
Vous devez vous connecter pour publier un commentaire.
marqueur de gauche pointant vers le dernier marqueur ajouté. Soit utiliser la fonction de fermeture ou de "ce" comme vous l'avez fait pour l'infowindow:
qui travaille dans mon propre application