0

Can anybody help. I have below code but when I click on the marker it redirects me to the same page:

<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>

<script type="text/javascript"> 
function initialize() {
  var myOptions = {
    zoom: 14,
    center: new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    streetViewControl: true,
    scrollwheel: false
  }

  var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);

  for (var i = 0; i < locations.length; i++) {
      var image = new google.maps.MarkerImage('images/greenmarkers/'+ i +'.png');
      var location = locations[i];
      var myLatLng = new google.maps.LatLng(location[1], location[2]);
      var marker = new google.maps.Marker({
          position: myLatLng,
          map: map,
          icon: image,
          title: location[0],
          url: location[3]
      });


google.maps.event.addListener(marker, 'click', function() {
  window.location.href = marker.url;
});
  }
}
</script>

<script type="text/javascript"> 
var locations = [['test', 63.3740200000000, 19.6301320000000, 'http://www.test.com'],['test1', 63.3725155758185, 19.6264879703522, 'http://www.test1.com'],['test2', 63.3762550022764, 19.6305649280548, 'http://www.test2.com']];
</script> 
j0k
  • 22,600
  • 28
  • 79
  • 90
Stipe
  • 57
  • 5
  • 8
  • Looks like the [common function-in-a-loop issue](http://stackoverflow.com/questions/3037598/how-to-get-around-the-jslint-error-dont-make-functions-within-a-loop). See http://stackoverflow.com/questions/6939983/creating-a-custom-google-map-with-multiple-markers-and-popup-windows-issues/6946209#6946209 for the basic way to fix it. – Matt Ball Aug 12 '11 at 15:57
  • Thanks Matt. I tried but no luck. – Stipe Aug 12 '11 at 17:28

2 Answers2

3

Here is a working code:

function loadURL(marker) {
    return function () {
        window.location.href = marker.url;
    }
}

function initialize() {
  var myOptions = {
    zoom: 5,
    center: new google.maps.LatLng(50.00, 50.00),
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    streetViewControl: true,
    scrollwheel: false
  }

  locations=[["aaa",51.00, 51.00, "http://www.atoztoa.com"], ["bbb",52.00, 52.00, "http://www.google.com"]];

  var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);

  for (var i = 0; i < locations.length; i++) {
      var image = new google.maps.MarkerImage('roundedbutton1.png');
      var location = locations[i];
      var myLatLng = new google.maps.LatLng(location[1], location[2]);
      var marker = new google.maps.Marker({
          position: myLatLng,
          map: map,
          icon: image,
          title: location[0],
          url: location[3]
      });

        google.maps.event.addListener(marker, 'click', loadURL(marker));
  }
}
ATOzTOA
  • 34,814
  • 22
  • 96
  • 117
0
marker[i] = new google.maps.Marker({
          position: myLatLng,
          map: map,
          icon: image,
          title: location[0],
          url: location[3]
      });


google.maps.event.addListener(marker[i], 'click', function() {
  window.location.href = this.url;
});
EIRAno
  • 1