var $refresh = window.setInterval(function(){
if (typeof BMapLib !== 'undefined') {
var markerClusterer = new BMapLib.MarkerClusterer(_map, { markers: markers });
var regions = xml.documentElement.getElementsByTagName('region');
for (var i = 0; i < regions.length; i++) {
/* Country level */
var countries = regions[i].getElementsByTagName('country');
for (var j = 0; j < countries.length; j++) {
/* City level */
var cities = countries[j].getElementsByTagName('city');
$(cities).each(function(){
var $city = $(this);
if (limitBy === 'city' && (limitBy === 'city' && $city[0].getAttribute('name') === limitValue)) {
mapPos = getMapPosition($city[0]);
current = true;
zoomLevel = $city[0].getAttribute('map-zoom-level');
markerClusterer.setStyles([
{
url: '/_cms-site-content/_corporate2/i/icons/our-schools/mapIcon.png',
size: new BMap.Size(25, 25),
textColor: '#fff',
opt_textSize: 16,
},
]);
}
else if (limitBy === 'city') {
current = false;
console.log($city);
markerClusterer.setStyles([
{
url: '/_cms-site-content/_corporate2/i/icons/our-schools/mapIcon_outOfCurrentArea.png',
size: new BMap.Size(25, 25),
textColor: '#fff',
opt_textSize: 16,
},
]);
}
});
}
}
clearInterval($refresh);
}
}, 500);
JavaScript правильно выбирает город, но неправильно применяет стиль для кластеров. Он применяет стиль в части «else» для всех городов, а не только для городов вне текущей зоны. При загрузке страницы и карты Baidu и проверке консоли текущий город и все города из текущей области города были выбраны правильно, но только стиль для части "else" применяется ко всем текущим и вне текущего города.