Добавлен код Javascript для кластера карт Baidu, чтобы изменить его, когда кластер находится за пределами города - PullRequest
0 голосов
/ 27 января 2020
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" применяется ко всем текущим и вне текущего города.

...