| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <script>
- import commonMixin from '../base/mixins/common.js'
- import bindEvents from '../base/bindEvent.js'
- import {createPoint} from '../base/factory.js'
- export default {
- render () {},
- name: 'bm-point-collection',
- mixins: [commonMixin('overlay')],
- props: {
- points: {
- type: Array,
- default () {
- return []
- }
- },
- shape: {
- type: String,
- default: 'BMAP_POINT_SHAPE_CIRCLE'
- },
- color: {
- type: String
- },
- size: {
- type: String,
- default: 'BMAP_POINT_SIZE_NORMAL'
- }
- },
- watch: {
- shape (val) {
- const {originInstance, color, size} = this
- originInstance.setStyles({
- shape: global[val],
- color,
- size: global[size]
- })
- },
- size (val) {
- const {originInstance, color, shape} = this
- originInstance.setStyles({
- shape: global[shape],
- color,
- size: global[val]
- })
- },
- color (val) {
- const {originInstance, shape, size} = this
- originInstance.setStyles({
- shape: global[shape],
- color: val,
- size: global[size]
- })
- },
- points: {
- deep: true,
- handler (val) {
- const {originInstance} = this
- originInstance.clear()
- originInstance.setPoints(val)
- }
- }
- },
- methods: {
- load () {
- const {BMap, map, points, shape, color, size} = this
- const overlay = this.originInstance = new BMap.PointCollection(points.map(p => createPoint(BMap, p)), {
- shape: global[shape],
- color,
- size: global[size]
- })
- bindEvents.call(this, overlay)
- map.addOverlay(overlay)
- }
- }
- }
- </script>
|