Добрый вечер. Подскажите, пожалуйста, как мне добавить на карту скрытые метки, сделать выделение многоугольником и показать только те метки, которые попали в выделенную область. Я делаю так:
// Создание коллекций геообъектов
myPointsCollection = new ymaps.GeoObjectCollection();
// Создаем многоугольник без вершин.
var myPolygon = new ymaps.Polygon([], { pointColor: 'red' }, { strokeColor: "FF0000AA" });
myPolygon.options
.set({
fill: false,
draggable: false,
// Курсор в режиме добавления новых вершин.
editorDrawingCursor: "crosshair",
// Максимально допустимое количество вершин.
editorMaxPoints: 50,
// Ширина обводки.
strokeWidth: 5
});
// Добавление меток в коллекцию
myPointsCollection
.add(new ymaps.Placemark([55.647685, 37.196578]))
.add(new ymaps.Placemark([55.578996, 37.094667]))
.add(new ymaps.Placemark([55.484970, 37.737869]))
.add(new ymaps.Placemark([55.892466, 37.834056]))
.add(new ymaps.Placemark([55.045867, 37.967653]));
// Добавление полигона и коллекций геообъектов на карту
myMap.geoObjects
.add(myPointsCollection)
.add(myPolygon);
// Выставляем границы карте, чтобы все точки были видны
myMap.setBounds(myPointsCollection.getBounds());
// Включаем режим редактирования с возможностью добавления новых вершин.
myPolygon.editor.startDrawing();
// Проверяем попадание в него координат меток
myPolygon.events.add('editorstatechange', function (e) {
// Получаем ссылку на текущий геообъект
var geoObject = e.get('target'),
color = geoObject.properties.get('pointColor');
// Проверяем попадание в область геометрии геообъекта всех точек из коллекции
myPointsCollection.each(function (point) {
if(geoObject.geometry.contains(point.geometry.getCoordinates())) {
point.options.set('preset', 'twirl#' + color + 'Icon');
}
else {
point.options.unset('preset');
Добавляю все метки, выделяю область и выделенные метки окрашиваются в красный.