2014-03-01 112 views
0

我尝试通过get方法将http数据发送到下一页,当用户单击地图上的任何单个标记时。试图基本上只通过URL发送一个唯一的号码,但现在与我的代码,它只发送数字7(地图上的总标记数),而它应该循环。有任何想法吗?要解决这个问题使Google地图标记点击唯一链接

$(document).ready(function() { 
    var map; 
    var elevator; 
    var myOptions = { 
     zoom: 3, 
     center: new google.maps.LatLng(38.50, -95.50), 
     mapTypeId: 'terrain' 
    }; 
    map = new google.maps.Map($('#map_canvas')[0], myOptions); 

    var addresses = ['Deltaville, VA', 'Grasonville, MD', 'Kemah, TX', 'Vancouver, BC', 'Stuart, FL', 'Manitowoc, WI', 'Alameda, CA']; 

    for (var x = 0; x < addresses.length; x++) { 
     $.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+addresses[x]+'&sensor=false', null, function (data) { 
      var p = data.results[0].geometry.location 
      var latlng = new google.maps.LatLng(p.lat, p.lng); 
      var marker = new google.maps.Marker({ 
       position: latlng, 
       map: map 
      }); 

      google.maps.event.addListener(marker, 'click', function() { 
       window.open("http://myurl.com/map.php?dealer=" + x); 
      }); 

     });  
    } 

}); 
+1

常见问题(FAQ),请参阅功能关闭的这个例子http://stackoverflow.com/questions/3059044/google-maps- js-api-v3-simple-multiple-marker-example/3059129#3059129 – geocodezip

回答

5

的一种方式(在地址/索引地址解析器通话功能关闭,在标记/索引标记功能关闭/单击事件处理程序)。不知道为什么你正在使用WebService地理编码,而不是内置的Google Maps Javascript API v3 Geocoding service

function createMarker(latlng,index, map) { 
    var marker = new google.maps.Marker({ 
     position: latlng, 
     map: map 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     window.open("http://myurl.com/map.php?dealer=" + index); 
    }); 
    return marker; 
} 
function geocodeAddress(address, index, map){ 
    $.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address='+address+'&sensor=false', null, function (data) { 
     var p = data.results[0].geometry.location 
     var latlng = new google.maps.LatLng(p.lat, p.lng); 
     createMarker(latlng, index, map); 
    });  
} 
$(document).ready(function() { 
    var map; 
    var elevator; 
    var myOptions = { 
     zoom: 3, 
     center: new google.maps.LatLng(38.50, -95.50), 
     mapTypeId: 'terrain' 
    }; 
    map = new google.maps.Map($('#map_canvas')[0], myOptions); 

    var addresses = ['Deltaville, VA', 'Grasonville, MD', 'Kemah, TX', 'Vancouver, BC', 'Stuart, FL', 'Manitowoc, WI', 'Alameda, CA']; 

    for (var x = 0; x < addresses.length; x++) { 
     geocodeAddress(addresses[x],x,map); 
    } 
}); 
+0

谢谢。任何想法为什么只有window.open的作品(新标签),而window.location不? – user2994560

相关问题