Есть карта, там выводятся метки по следующему коду:
var myGeoObjects = []; $.get('url', function (data) { for (var i = 0; i < data.length; i++) { //if (data[i].id == id_view) continue; var id = data[i].id; var geo = data[i].geo.split(','); var name = data[i].name; var description = data[i].description; myGeoObjects[i] = new ymaps.GeoObject({ // Тип геометрии - точка. // Описание геометрии. geometry: { type: 'Point', // Координаты точки. coordinates: [geo[0], geo[1]] }, properties: { clusterCaption: 'Геообъект №' + id, balloonContent: '<strong>' + name + '</strong><br/>' + description, hintContent: name } }) } filtrMap.geoObjects.events.add('mouseenter', function (e) { e.get('target').options.set('preset', 'islands#pinkIcon'); }).add('mouseleave', function (e) { e.get('target').options.unset('preset'); }); var myClusterer = new ymaps.Clusterer({clusterDisableClickZoom: true}); myClusterer.add(myGeoObjects); filtrMap.geoObjects.add(myClusterer);
Необходимо получить координаты меток, либо id, которые находятся внутри выделенной области и которая рисуется многоугольником:
var myPolygon = new ymaps.Polygon([], {}, { // Курсор в режиме добавления новых вершин. editorDrawingCursor: "crosshair", // Максимально допустимое количество вершин. //editorMaxPoints: 5, // Цвет заливки. fillColor: '#00FF00', // Цвет обводки. strokeColor: '#0000FF', // Ширина обводки. strokeWidth: 2 }); // Добавляем многоугольник на карту. filtrMap.geoObjects.add(myPolygon); // В режиме добавления новых вершин меняем цвет обводки многоугольника. var stateMonitor = new ymaps.Monitor(myPolygon.editor.state); stateMonitor.add("drawing", function (newValue) { myPolygon.options.set("strokeColor", newValue ? '#FF0000' : '#0000FF'); }); // Включаем режим редактирования с возможностью добавления новых вершин. myPolygon.editor.startDrawing();
Есть пример с окружностью но не понятно, как его применить для многоугольника и как получить координаты:
ymaps.ready(init); function init() { var myMap = new ymaps.Map("map", { center: [55.43, 37.75], zoom: 8 }, { searchControlProvider: 'yandex#search' }), objects = ymaps.geoQuery([ { type: 'Point', coordinates: [55.73, 37.75] }, { type: 'Point', coordinates: [55.10, 37.45] }, { type: 'Point', coordinates: [55.25, 37.35] } ]).addToMap(myMap), circle = new ymaps.Circle([[55.43, 37.7], 10000], null, { draggable: true }); circle.events.add('drag', function () { // Объекты, попадающие в круг, будут становиться красными. var objectsInsideCircle = objects.searchInside(circle); objectsInsideCircle.setOptions('preset', 'islands#redIcon'); // Оставшиеся объекты - синими. objects.remove(objectsInsideCircle).setOptions('preset', 'islands#blueIcon'); }); myMap.geoObjects.add(circle); }