vue-yandex-map
v0.9.8
Published
vue yandex-map controller
Downloads
85
Readme
install
npm i vue-yandex-map
use
<yandex-map
:center="[55.681576, 37.488467]"
:zoom="10"
:dragable="false"
:scrollZoom="false"
@created="mapCreated">
@destroy="mapDestroy">
<region-select
button-text="Please select ..."
:region="[[55.761104221485205, 37.589244608215324],[55.753360214866454, 37.519893411926276], [55.74329069752624, 37.57207847052001]]"
@changed="regionChanged">
</region-select>
</yandex-map>
example app
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, // Опции кластеров задаются с префиксом cluster.
geoObjectOpenBalloonOnClick: false // Опции геообъектов задаются с префиксом geoObject
})
this.map.behaviors.disable('drag')
// set ObjectManager events
this.map.events.add(['click'], function(){
this.mapObjectManager.objects.balloon.close()
})
// add points on map
// ...
},
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');
// check points in region
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)
}
}
}
screenshot
yandex-map properties
| Name | Type | Required | Default | Description | | ------ |:-----:| :---------:| --------|:---------| | center | Array | false | [] | set map center | | zoom | Number | false | 15 | set map zoom | | dragable | Boolean | false | true | enable drag map | | scrollZoom | Boolean | false | true | enable zoom on scroll |
yandex-map events
| Name | params | Description | | ------ |:-----:|:---------| | created | map | when creating the map | | destroy | map | when destroy the map | | click | map, position | when click on map | | boundschange | map, bounds | when change bounds |
region-select properties
| Name | Type | Required | Default | Description | | ------ |:-----:| :---------:| --------|:---------| | button-text | String | false | | set button text | | button-selected-text | String | false | | set button selected text | | button-cancel-text | String | false | | set button cancel text | | region | Array | false | [] | set region |
region-select events
| Name | params | Description | | ------ |:-----:|:---------| | changed | coordinates | when changing the selection | | status | status | when changing the selection status [init, selected, cancel]|
https://domatskiy.github.io/vue-yandex-map/