Клуб API Карт

Выделение области района

m1sterzheki4
24 мая 2013, 16:22

Дорый день! Допустим у меня есть страна Украина, в ней 24 области, как выделить одну области как на скрине. В скрине показана конкретная область которая делеться на районы  

15 комментариев
Подписаться на комментарии к посту
добавить на карту полигон нужного цвета

Больше инфы, примеры есть какие-то?

А как посчитать колличество геообьектов которые находятся в полигоне?

это можно сделать, например, с помощью geoQuery

Не подскажете. можно ли вводить дополнительные переметры

 

myMap = new ymaps.Map("map", {
                center: [51.6869, 39.2407],
                zoom: 12
            });

 

// Создание полигона
            var polygon = new ymaps.Polygon(
                [[[51.66157,39.20015],[51.6683,39.19182],[51.67371,39.18556],[51.69535,39.18286],[51.69595,39.19665],[51.69209,39.20566],[51.69202,39.20848],[51.69286,39.20862],[51.69275,39.21546],[51.69569,39.22284],[51.69342,39.2336],[51.67995,39.22798],[51.67769,39.22826],[51.67147,39.2247],[51.66886,39.22324],[51.66816,39.22187],[51.66822,39.22204],[51.66718,39.222],[51.66656,39.2211],[51.66167,39.21893],[51.66136,39.21951],[51.65658,39.21655],[51.65118,39.21329],[51.66157,39.20015]]]
            ,{}, {
                fillColor: 'ffea0066',
                interactivityModel: 'default#transparent',
                strokeWidth: 3,
                opacity: 0.85,
                strokeColor: 'ffea00e6'
            });
            myMap.geoObjects.add(polygon);
           
           var objects = ymaps.geoQuery([
                {
                    type: 'Point',
                    coordinates: [51.6819, 39.2197],
                    hintContent: "Москва",
                    balloonContentHeader: "Москва",
                    balloonContentBody: "Заказ №1",
                    population: 11848762
                }, {
                    type: 'Point',
                    coordinates: [51.6819, 39.2157]

ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ НАПРИМЕР:

id:"120"
                }, {
                    type: 'Point',
                    coordinates: [51.6819, 39.2147]
                }, {
                    type: 'Point',
                    coordinates: [51.6819, 39.2395]
                }
            ]);
            objects.addToMap(myMap);
           
            polygon.events.add('click', function (e) {
                var result = objects.searchInside(polygon).addToMap(myMap);
               
                alert("Количество геообъектов в видимого полигона карты: " + result.getLength()
                + " координаты первого: "
                +  result.get(0).КАК ДОСТАТЬ ДОПОЛНИТЕЛЬНЫЙ ПАРАМЕТР?);
               
            });

Там GeoJSON, вы можете использовать поле properties

 

var result = ymaps.geoQuery({
    type: 'FeatureCollection',    features: [{            type: 'Feature',            geometry: {                type: 'Circle',                coordinates: [15, 15],                radius: 100            }        }, {            type: 'Feature',            geometry: {                type: 'LineString',                coordinates: [                    [15, 16],                    [66, 23]                ]            }        },        // Коллекции объектов могут быть вложенными.        {            type: 'FeatureCollection',            features: [{                type: 'Feature',                geometry: {                    type: 'Point',                    coordinates: [12, 41]                },                properties: {                    id: 12345                },                options: {                    preset: 'twirl#yellowIcon'                }            }]        }    ]});

 

 

Наверное я туплю, но все таки не могу я получить значение этого самого ИД:

var objects = ymaps.geoQuery({
                type: 'FeatureCollection',
                features: [
                    {
                        type: 'Feature',
                        geometry: {
                            type: 'Point',
                            coordinates: [51.6819, 39.2197]
                        },
                        properties: {
                            id: 123456
                        }
                    },{
                        type: 'Feature',
                        geometry: {
                            type: 'Point',
                            coordinates: [51.6819, 39.2395]
                        },
                        properties: {
                            id: 12345
                        }
                    }
                ]
              });
            objects.addToMap(myMap);
           
            polygon.events.add('click', function (e) {
                var result = objects.searchInside(polygon).addToMap(myMap);
               
                for(i***;iresult.getLength()****){
                    $(".info").append(" Координаты точки: "
                   
                    + result.get(i).geometry.getCoordinates() + " "
                    + result.get(i).properties.id + "
" );
               ****} 
            });

выложи на jsfiddle так по коду я не умею разбираться

Вот выложил (Кстати оценил сервис - СПАСИБО) jsfiddle.net/nikoniki/xQg6r/ (Ошибка при клике на полигон[Под картой])

Там надо не через properties.id,  а через интерфейс Менеджера данных обращаться

Обновил ваш фидл

Вы просто волшебник!!!! У меня все заработало. Огромный респект Вам! )))
К моему сожалению более чем с одним полигоном фокус не удался...((( Посмотрите пожалуйста что можно сделать... Потому что я уже не знаю что сделать что бы уже все заработало http://jsfiddle.net/nikoniki/bQCvw/1/  ...Есть еще один пример, ...даже не знаю какая идея была удачливее... http://jsfiddle.net/nikoniki/xQg6r/7/
Случилось ЧУДО!! Я нашел решение своих проблем. Надеюсь пригодится тот пример который у меня получился для чьих то еще разработок: http://jsfiddle.net/nikoniki/xQg6r/9/    (Суть - кликаем по палигону и обьекты внутри него считаются и вытягиваются их координаты и ИД). Спасибо за содействие!!

 Отображает 25 полигонов - 24 района + общую обводку.

При наведении на один из районов - изменить ему цвет заливки

........

Профит