javascript - Google Maps - center map on marker click -
i have following code placing several markers on google map.
what want when user clicks on marker zooms in , centers map marker position (this bit that's not working - towards end of code in setmarkers function).
any ideas?
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) { (var = 0; < 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); } }
marker left pointing last marker added. either use function closure or "this" did infowindow:
google.maps.event.addlistener(marker, "click", function () { infowindow.setcontent(this.html); infowindow.open(map, this); map.setcenter(this.getposition()); map.setzoom(10); });
Comments
Post a Comment