HTML:
<ya-map ya-zoom="8" ya-center="[37.75,55.43]"> <ya-collection ya-after-init="afterInit($target)"> <ya-geo-object ng-repeat="o in geoQuerySource" ya-source="o"></ya-geo-object> </ya-collection> <ya-geo-object ya-source="circle" ya-options="{draggable:true}" ya-event-drag="drag($event)"></ya-geo-object> </ya-map>
javascript:
var objects, collection; $scope.afterInit = function(col){ collection = col; }; $scope.circle = { geometry:{ type:'Circle', coordinates:[37.7,55.43], radius:10000 } }; $scope.geoQuerySource = [ { geometry:{ type: 'Point', coordinates: [37.75,55.73] } }, { geometry:{ type: 'Point', coordinates: [37.45,55.10] } }, { geometry:{ type: 'Point', coordinates: [37.35,55.25] } } ]; $scope.drag = function(event){ if(!objects){ objects = ymaps.geoQuery(collection); } var circle = event.get('target'); var objectsInsideCircle = objects.searchInside(circle); objectsInsideCircle.setOptions('preset', 'islands#redIcon'); // Оставшиеся объекты - синими. objects.remove(objectsInsideCircle).setOptions('preset', 'islands#blueIcon'); };
Перетаскивайте круг и следите за цветом меток