import YandexMap from 'vue-yandex-map'
Vue.use(YandexMap, {
version: '2.1',
lang: 'ru_RU',
apiKey: '',
});
export default {
name: 'app',
data () {
return {
map: null,
map_data: [],
mapObjectManager: null
}
},
methods: {
yamapReady: function () {
},
mapCreated: function ($map) {
console.info('mapCreated, $map=', $map)
this.map = $map
this.mapObjectManager = new ymaps.ObjectManager({
clusterize: false,
gridSize: 60,
clusterMinClusterSize: 5,
clusterHasBalloon: true,
geoObjectOpenBalloonOnClick: false
})
this.map.behaviors.disable('drag')
this.map.events.add(['click'], function(){
this.mapObjectManager.objects.balloon.close()
})
},
mapDestroy: function($map) {
console.info('mapDestroy')
},
regionChanged: function ($coordinates, $polygon) {
console.info('regionChanged, coord=', $coordinates)
let visibleID = [];
if (typeof $polygon === 'undefined') {
$polygon = null;
}
this.map.behaviors.disable('drag');
this.mapObjectManager.setFilter(function (object) {
let in_poligon = $polygon === null ? false : $polygon.geometry.contains(object.geometry.coordinates);
let visible = $polygon === null ? true : in_poligon;
if($polygon !== null && in_poligon) {
visibleID.push(object.id)
}
return visible
})
console.log('map, selected point ID', visibleID)
}
}
}