迁徙图(MigrationLayer)
示例
示例源码
tsx
import React, { useEffect, useRef, useState } from 'react'
import ReactDOM from 'react-dom'
import { MbMap, MbTiandituLayer } from '@mapbox-react/core'
import { MbArcLayer } from '@mapbox-react/deck-layers'
import { MbMigrationLayer } from '@mapbox-react/effect-layers'
const App = () => {
const [mapCenter] = useState([116, 39])
const [zoom, setZoom] = useState(3)
const [pitch, setPitch] = useState(60)
const mapInst = useRef<any>()
const [data, setData] = useState<any[]>([])
const [width, setWidth] = useState(3)
function getRandomArbitrary(min: number, max: number) {
return Math.random() * (max - min) + min
}
const loadData = () => {
const temp: any[] = []
for (let i = 0; i < 100; i++) {
temp.push({
to: [getRandomArbitrary(100, 132), getRandomArbitrary(25, 50)],
})
}
setData(temp)
}
useEffect(() => {
loadData()
}, [])
return (
<div className="map-wrapper">
<MbMap ref={mapInst} center={mapCenter} zoom={zoom} pitch={pitch}>
<MbArcLayer
data={data}
sourcePosition={[116, 39]}
targetPosition={(d) => d.to}
width={width}
height={0.8}
sourceColor="rgb(255, 0, 128)"
targetColor="rgb(0, 200, 255)"
/>
<MbMigrationLayer
data={data}
sourcePosition={[116, 39]}
targetPosition={(d) => d.to}
width={width}
height={0.8}
sourceColor="#fff"
targetColor="#fff"
trailLength={5}
/>
</MbMap>
</div>
)
}
ReactDOM.render(<App />, document.querySelector('#root'))
API
PROPS
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
id | 图层Id | string | - |
trailLength | - | number | 5 |
data | 图层源数据 | string / IndexAny / AnyArr / Promise<any> | '' |
show | 是否显示 | boolean | true |
opacity | 透明度 | number | 1 |
pickable | 图层是否会响应鼠标事件,若为false,则组件不会emit鼠标相关事件 | boolean | false |
autoHighlight | 本属性为true且pickable为true时,则会将鼠标悬浮选中的对象设为高亮 | boolean | false |
highlightColor | 要与高亮对象原始颜色进行混合(blend)的颜色值 | string / number[] | [255, 255, 128, 1] |
highlightedObjectIndex | 高亮元素序号 | number | -1 |
onDataLoad | - | AnyFunc | - |
dataTransform | - | AnyFunc | - |
transitions | - | IndexAny | {} |
sourcePosition | 源位置 | AnyArr / AnyFunc | - |
targetPosition | 目的位置 | AnyArr / AnyFunc | - |
sourceColor | 源颜色 | string / AnyFunc | black |
targetColor | 目标颜色 | string / AnyFunc | black |
width | 宽度 | number / AnyNumberFunc | 1 |
EVENTS
名称 | 描述 | 参数 |
---|
METHODS
名称 | 描述 | 定义 |
---|