Есть карта, там выводятся метки по следующему коду:
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);
}