Клуб API Карт

Как отфильтровать подсвеченные регионы в API 1.x YMaps.Regions

Aspire-main
13 декабря 2012, 17:22

привет.

сделал так чтобы все области подсвечивались нужным мне цветом без наведения мыши.

возник вопрос: как убрать не нужные мне регионы.

  

 

       // Создание обработчика для события window.onLoad
        YMaps.jQuery(function () {
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

            // Установка для карты ее центра и масштаба
            map.setCenter(new YMaps.GeoPoint(69.5234, 55.5446), 5);
            
            // Загрузка регионов для россии
            YMaps.Regions.load("ru", function (state, response,data) {
                if (state == YMaps.State.SUCCESS) {
//map.addOverlay(response);
                    // Задание стиля для коллекции регионов
                    response.setStyle({
                        polygonStyle : {
                            fillColor : "ff9e3f55",
                            strokeColor : "000000",
                            strokeWidth: "5"
                        },
                        hasHint : true

                    });
                      response.forEach(function (region) {
                    var encodedData = region.metaDataProperty.encodedShapes;
                    YMaps.jQuery.each(encodedData, function (i, rec) {
                        var style = {
                            polygonStyle: {
                                strokeColor: "000000",
                                strokeWidth: 3,
                                fillColor: "ff9e3f55"
                            }
                        },
                        poly = YMaps.Polygon.fromEncodedPoints(rec.coords, rec.levels, {
                            style: style
                        });
                        poly.name = region.name;
                        map.addOverlay(poly);


                        YMaps.Events.observe(poly, poly.Events.MouseEnter, function (poly) {
                            poly.setStyle({
                                polygonStyle: {
                                    strokeColor: "00ffff88",
                                    strokeWidth: 3,
                                    fillColor: "00ffff33"
                                }
                            });
                        });

                        YMaps.Events.observe(poly, poly.Events.MouseLeave, function (poly) {
                            poly.setStyle(style);
                        });
                    });
                });

 

 я знаю как отфильтровать без подстветки

(   var regionName = response.filter(function (obj) {
            return obj.name == "Ханты-Мансийский автономный округ";
        })[0];  )

но это не помогает в моем случае.

4 комментария
Подписаться на комментарии к посту

Что мешает смотреть на имя региона и не добавлять не нужное на карту?

Вы же это сами делаете.

 

 

(   var regionName = response.filter(function (obj) {
            return obj.name == "Ханты-Мансийский автономный округ";
        })[0];  )

но это не помогает в моем случае.

ок. задам вопрос по другому.

в каком конкретно месте нужно прописывать фильтр, и главное как его прописать.

там кроме имени региона нет ничего почему можно отфильтровать,

поэтому создаем массив с названиями нужных регионов

var regionNames = ["Ханты-Мансийский автономный округ", "еще автономный округ", "и еще какой-то нужный автономный округ"];


var selectedRegions = response.filter(function (obj) {

    return regionNames.indexOf(obj.name) >= 0;
});

map.addOverlay(selectedRegions);