。 我有50個來自sql的地址。每個地址將在div LocationAddress內呈現。我循環瀏覽每個地圖,並在地圖上繪製標記。但它只顯示11個。我知道這是因爲地理編碼器成爲瓶頸。我如何使用setinterval或settimeout來控制它?我研究,並且看到了setTimeout的處理this..please有人指導我的人......setinterval或settimeout谷歌地圖v3
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(42.095287, -79.3185139);
var myOptions = {
maxZoom: 14,
zoom: 9,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
};
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
}
function codeAddress() {
var infowindow = new google.maps.InfoWindow({});
$('.LocationAddress').each(function() {
var addy = $(this).text();
geocoder.geocode({ 'address': addy}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
title:addy,
});
//Adding a click event to the marker
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent('<div id=\"infowindow\" style=" height:100px;>'
+'<div id=\"LeftInfo\">'+ "Hello World!"
+'</div>'+'</div>');
infowindow.open(map, this);
});
}
});//Geocoder END
});
}
我在哪裏使用setInterval函數?在CodeAddress()裏面?或codeAddress(){}之後 – 2012-03-21 00:43:48
你在外面做。無論如何,我只是編輯它的部分addresses.length == 0來清除我們所做的時間間隔。 – Mikko 2012-03-21 00:47:08
其中getAddress()被調用?某事破壞了,所以我的地圖根本沒有顯示...當你說'在頂部聲明一個包含我們地址和infowindow的變量:'你的意思是讓這些全局變量?所以它們可用於任何功能? – 2012-03-21 00:59:27