HTML:
<ya-map ya-zoom="12" ya-center="[37.75,55.73]" ya-event-click="mapClick($event)"> <ya-collection ya-after-init="afterInit($target)"> <ya-geo-object ng-repeat="cafe in cafes" ya-source="cafe"></ya-geo-object> </ya-collection> </ya-map>
javascript:
var cafe, collection; $scope.cafes = [ { properties: { balloonContent: 'Кофейня "Дарт Вейдер" - у нас есть печеньки!' }, geometry: { type: 'Point', coordinates: [37.545849,55.724166] } }, { properties: { balloonContent: 'Кафе "Горлум" - пирожные прелесть.' }, geometry: { type: 'Point', coordinates: [37.567886,55.717495] } }, { properties: { balloonContent: 'Кафе "Кирпич" - крепкий кофе для крепких парней.' }, geometry: { type: 'Point', coordinates: [37.631057,55.7210180] } } ]; $scope.afterInit = function(col){ collection=col; }; $scope.mapClick=function(event){ if(!cafe){ cafe = ymaps.geoQuery(collection); } cafe.getClosestTo(event.get('coordPosition')).balloon.open(); };
При клике на карту будет открываться балун ближайшей к месту клика метки