我一直在使用這樣的:google maps marker as link api v3與多標記鏈接谷歌地圖API
我得到的是所有在我的地圖上的標記具有相同的鏈接 所以我改變了一下,沒有任何幫助
代碼我正在努力的主要事情是,在第一個循環var i是介於0到n之間,但在geocoder.gercode函數內它始終是n值(頂部值),而不是從0到因此我的鏈接永遠是最後一個
var AllPlaces = new Array();
var address = [<%=LocationStr%>];
var links = [<%=LinkStr%>];
var dolinks = (links.length == 0) ? false : true;
var MaxAddress = address.length;
var ThisLink;
var Markers = new Array();
var Mj = 0;
var geocoder;
function initialize() {
geocoder = new google.maps.Geocoder();
for (var i = 0; i < MaxAddress; i++) {
ThisLink = "";
Mj = i;
if (dolinks) {
ThisLink = links[i];
}
geocoder.geocode({ 'address': address[i]}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
AllPlaces.push(results[0].geometry.location);
if (MaxAddress == 1) {
map.setCenter(results[0].geometry.location);
}
else {
DoCenter(AllPlaces,map);
}
Markers[i] = new google.maps.Marker({
map: map,
url: ThisLink,
position: results[0].geometry.location
});
alert(Mj);
if (dolinks) {
google.maps.event.addListener(Markers[i], 'click', function() {
window.location.href = Markers[i].url;
});
}
}
});
}
var latlng = new google.maps.LatLng();
var myOptions = {
zoom: <%=ZoomStr%>,
mapTypeControl: false,
streetViewControl: false,
panControl: false,
zoomControl: true,
scaleControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("<%=DivID%>"), myOptions);
}
function DoCenter(LL,obj) {
if (LL.length < MaxAddress) return;
var bounds = new google.maps.LatLngBounds();
for (var i = 0, LtLgLen = LL.length; i < LtLgLen; i++) {
bounds.extend (LL[i]);
}
obj.fitBounds (bounds);
}
能否請您進一步解釋關於它? –
你給出的例子有錯誤 –
是的,抱歉,我只是糾正了我的代碼。我得走了。但是當我回來時,會對這種方法增加額外的評論。 – Krasimir