渐变流线图层(LineLayer)
示例
公交线路可视化demo,共94000条线段
示例源码
vue
<template>
<div style="height: 400px">
<mb-map :zoom="8" :pitch="40">
<mb-line-layer
:data="__RESOURCE_URL__ + 'json/beijing_bus.json'"
:color="getColor"
:width="3"
:source-position="(d) => d.from"
:target-position="(d) => d.to"
/>
</mb-map>
</div>
</template>
<script setup lang="ts">
const getColor = (d) => {
const r = (d.from[1] - 39.5) * 0.5 + (d.from[0] - 116) * 0.5
return `rgba(${255 * (1 - r * 2)}, ${128 * r}, ${255 * r},${
Math.abs(80 * r) + 60
})`
}
</script>
API
PROPS
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
id | 图层Id | string | - |
source-position | 源位置 | AnyArr / AnyFunc | - |
target-position | 目的位置 | AnyArr / AnyFunc | - |
auto-highlight | 本属性为true且pickable为true时,则会将鼠标悬浮选中的对象设为高亮 | boolean | false |
color | - | string / AnyFunc | black |
data | 图层源数据 | string / IndexAny / AnyArr / Promise<any> | '' |
highlight-color | 要与高亮对象原始颜色进行混合(blend)的颜色值 | string / number[] | [255, 255, 128, 1] |
highlighted-object-index | 高亮元素序号 | number | -1 |
opacity | 透明度 | number | 1 |
pickable | 图层是否会响应鼠标事件,若为false,则组件不会emit鼠标相关事件 | boolean | false |
show | 是否显示 | boolean | true |
width | 宽度 | number / AnyNumberFunc | 1 |
width-max-pixels | - | number | Number.MAX_SAFE_INTEGER |
width-min-pixels | - | number | 0 |
width-scale | - | number | 1 |
width-units | - | string(pixels / meters) | meters |
EVENTS
名称 | 描述 | 参数 |
---|---|---|
created | 初始化完成事件 | - |
mousemove | - | { object: any; coordinates: mapboxgl.LngLat; pixel: [number, number] } |
mouseleave | - | - |
click | - | { object: any; coordinates: mapboxgl.LngLat; pixel: [number, number] } |
SLOTS
名称 | 描述 |
---|
METHODS
名称 | 描述 | 定义 |
---|