Привет, у меня довольно большой скрипт, поэтому я не буду публиковать все это здесь, но мне действительно нужна помощь, не знаю, что делать дальше ...
У меня ~ 300 маркеров на картах, и все онизагружаются в то же время, и Google не может обработать, или мой сценарий не может обработать, но я получаю «Адрес не может быть найден» в половине из них, возможно, даже больше (другие загружаются правильно).Но если я удаляю все, кроме этого, все работает как следует!
Что делать?Есть ли способ загрузить их немного за раз шаг за шагом, или есть много обработчиков маркеров или т. Д.?(не markersManager, их нужно видеть на всех уровнях масштабирования)
Попытка с таймаутом не помогла!
Часть кода:
function initHeadAddress(searchString) {
if(searchString == 'undefined') {
map.clearOverlays();
var t = setTimeout("showAddress('Himmelev Bygade 78 B, 4000 Roskilde, Denmark',1,'3T Bygningsentreprise A/S','4000','Roskilde','46328328','null','www.3t.dk',null,null)",1000);
var t = setTimeout("showAddress('Nørre Allé 51, 7760 Hurup, Denmark',4,'Idealcombi','7760','Hurup','96882500','null','http://www.idealcombi.dk/',null,null)",1000);
..... A LOT OF THESE HERE MORE !!!!
// default one
showAddress('Denmark', 0, null, null,null,null,null,null,null,searchString);
} else {
// if used search function
showAddress(searchString, 0, null, null,null,null,null,null,null,searchString);
}
}
ShowAddressфункция:
function showAddress(address, markerType, companyname,postnr, by, phone, fax, web, email, searchString) {
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
//alert("Adresse " +address+ " blev ikke fundet");
console.log("Adresse " +address+ " blev ikke fundet");
} else {
var myIcon = new GIcon(G_DEFAULT_ICON);
myIcon.shadow = null;
myIcon.infoWindowAnchor = new GPoint(9, 2)
if (markerType == '0') {
myIcon.image = '/files/billeder/../Templates/Designs/Ideal2011/images/Map/googleempty.png';
myIcon.iconSize = new GSize(18, 18);
}
if (markerType == '1') {
myIcon.image = '/files/billeder/../Templates/Designs/Ideal2011/images/Map/googlered.png';
myIcon.iconSize = new GSize(18, 18);
$('#dotRedCheckbox').click(
function(){
if(!$(this).hasClass('activeMarker')){
marker.hide();
} else {
marker.show();
}
}
);
}
else if (markerType == '2') {
myIcon.image = '/files/billeder/../Templates/Designs/Ideal2011/images/Map/googlelblue.png';
myIcon.iconSize = new GSize(18, 18);
$('#dotlBlueCheckbox').click(
function(){
if(!$(this).hasClass('activeMarker')){
marker.hide();
} else {
marker.show();
}
}
);
}
else if (markerType == '3') {
myIcon.image = '/files/billeder/../Templates/Designs/Ideal2011/images/Map/googledblue.png';
myIcon.iconSize = new GSize(18 , 18);
$('#dotdBlueCheckbox').click(
function(){
if(!$(this).hasClass('activeMarker')){
marker.hide();
} else {
marker.show();
}
}
);
}
else if (markerType == '4') {
myIcon.image = '/files/billeder/../Templates/Designs/Ideal2011/images/Map/googlegreen.png';
myIcon.iconSize = new GSize(18, 18);
$('#dotGreenCheckbox').click(
function(){
if(!$(this).hasClass('activeMarker')){
marker.hide();
} else {
marker.show();
}
}
);
}
var markerOptions = { icon: myIcon };
var marker = new GMarker(point, markerOptions);
marker.getPoint();
if(markerType != 0){
points.push(point);
markers.push(marker);
}
if (markerType == 0) {
if(searchString == 'undefined'){
map.setCenter(point, 6);
} else {
map.setCenter(point, 13);
LatD = point.lat().toFixed(5);
LngD = point.lng().toFixed(5);
find_closest_marker(LatD, LngD);
find_closest_marker2(LatD, LngD);
find_closest_marker3(LatD, LngD);
}
}
Lat = point.lat().toFixed(5);
Lng = point.lng().toFixed(5);
var image = '<img src="http://cbk0.google.com/cbk?output=thumbnail&w=85&h=70&ll='+Lat+','+Lng+'" />'; // alt="'+address+'"
map.addOverlay(marker);
if(markerType != 0) {
if(fax != "" && fax != null && fax != 'null'){
var newfax = "Mob.: "+fax+"<br/>";
} else {
var newfax = "";
};
if(web != "" && web != null && web != 'null'){
var newweb = "<a href='"+web+"'>"+web+"</a><br/>";
} else {
var newweb = "";
};
if(postnr != "" && postnr != null && postnr != 'null'){
var newpostnr = postnr;
} else {
var newpostnr = "";
};
if(phone != "" && phone != null && phone != 'null'){
var newphone = phone;
} else {
var newphone = "";
};
//address = address.replace("Denmark, ","");
//address = address.replace(", Denmark","");
//address = address.replace(", 2650 Hvidovre","");
//address = address.replace(", Hurup","");
//address = address.replace("UK, ","");
address2 = address.split(',');
address = address2[0];
var infoboxInfo = '<div class="infoboxall"><div class="infoboxinfo"><div class="infoboxAddress">'+companyname +"</div>"+ address + '<br/>' + newpostnr + " " + by+ "<br/>" + "Tlf.: " + newphone + "<br/>" + newfax + newweb+"<a href='mailto:"+email+"'>"+email+"</a>"+'</div>' + image+'</div>';
//marker.openInfoWindowHtml(address);
//GEvent.addListener(marker, 'click',marker.openInfoWindowHtml(address));
GEvent.addListener(marker, "click", function()
{marker.openInfoWindowHtml(infoboxInfo);});
marker.markerType = markerType;
marker.title = companyname;
marker.address = address;
marker.postby = newpostnr+ " " + by;
marker.phone = newphone;
marker.fax = newfax;
marker.web = newweb;
marker.email = email;
}
}
}
);
}
}
Кто-нибудь есть идеи?Как я сказал, скрипт работает как должен, если есть 5 маркеров или около того ... но показывает только некоторые из них, когда все вставлены?Идеи?