Skip to content

迁徙图(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图层Idstring-
trail-length-number5
data图层源数据string / IndexAny / AnyArr / Promise<any>''
show是否显示booleantrue
opacity透明度number1
pickable图层是否会响应鼠标事件,若为false,则组件不会emit鼠标相关事件booleanfalse
auto-highlight本属性为true且pickable为true时,则会将鼠标悬浮选中的对象设为高亮booleanfalse
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 / AnyFuncblack
target-color目标颜色string / AnyFuncblack
width宽度number / AnyNumberFunc1

EVENTS

名称描述参数

SLOTS

名称描述

METHODS

名称描述定义