迁徙图(MigrationLayer)
示例
示例源码
vue
<template>
<div class="map-container">
<mb-map :pitch="60" :bearing="30" :zoom="3.5">
<mb-tianditu-layer :types="['img']" />
<mb-arc-layer
:data="data"
:source-position="sourcePosition"
:target-position="targetPosition"
:width="3"
:height="0.8"
:source-color="sourceColor"
:target-color="targetColor"
/>
<mb-migration-layer
:data="data"
:source-position="sourcePosition"
:target-position="targetPosition"
:width="3"
:height="0.8"
source-color="#fff"
target-color="#fff"
:trail-length="5"
/>
</mb-map>
</div>
</template>
<script setup lang="ts">
import { onMounted, ref } from 'vue'
const data = ref<{ to: [number, number] }[]>([])
const sourcePosition = [116, 39]
const targetPosition = (d) => d.to
const sourceColor = 'rgb(255, 0, 128)'
const targetColor = 'rgb(0, 200, 255)'
function getRandomArbitrary(min: number, max: number) {
return Math.random() * (max - min) + min
}
onMounted(() => {
for (let i = 0; i < 100; i++) {
data.value.push({
to: [getRandomArbitrary(100, 132), getRandomArbitrary(25, 50)],
})
}
})
</script>
API
PROPS
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
id | 图层Id | string | - |
trail-length | - | number | 5 |
data | 图层源数据 | string / IndexAny / AnyArr / Promise<any> | '' |
show | 是否显示 | boolean | true |
opacity | 透明度 | number | 1 |
pickable | 图层是否会响应鼠标事件,若为false,则组件不会emit鼠标相关事件 | boolean | false |
auto-highlight | 本属性为true且pickable为true时,则会将鼠标悬浮选中的对象设为高亮 | boolean | false |
highlight-color | 要与高亮对象原始颜色进行混合(blend)的颜色值 | string / number[] | [255, 255, 128, 1] |
highlighted-object-index | 高亮元素序号 | number | -1 |
on-data-load | - | AnyFunc | - |
data-transform | - | AnyFunc | - |
transitions | - | IndexAny | {} |
source-position | 源位置 | AnyArr / AnyFunc | - |
target-position | 目的位置 | AnyArr / AnyFunc | - |
source-color | 源颜色 | string / AnyFunc | black |
target-color | 目标颜色 | string / AnyFunc | black |
width | 宽度 | number / AnyNumberFunc | 1 |
EVENTS
名称 | 描述 | 参数 |
---|
SLOTS
名称 | 描述 |
---|
METHODS
名称 | 描述 | 定义 |
---|