Skip to content

烟火(SparkLayer)

示例

示例源码
vue
<template>
  <div class="map-container">
    <mb-map
      :zoom="14"
      :center="[116.17381, 39.92155464]"
      :pitch="60"
      background-color="black"
    >
      <mb-gradient-building-layer
        :data="__RESOURCE_URL__ + 'json/building.geojson'"
        :data-transform="(d) => d.features"
        :get-polygon="(d) => d.geometry.coordinates[0]"
        :get-elevation="(d) => d.properties.Floor * 60"
      />
      <mb-spark-layer
        :data="sparkData"
        :get-position="(d) => d.coordinates"
        :get-height="(d) => d.properties.height"
        :get-color="(d) => d.properties.color"
        :trail-length="100"
        :speed="5"
      />
    </mb-map>
  </div>
</template>

<script setup lang="ts">
import { onMounted, ref } from 'vue'

const sparkData = ref<
  Array<{ coordinates: number[]; properties: Record<string, any> }>
>([])

onMounted(() => {
  for (let i = 0; i < 100; i++) {
    sparkData.value.push({
      coordinates: [
        116.168 + Math.random() * 0.014,
        39.917 + Math.random() * 0.007,
      ],
      properties: {
        height: 400 + Math.random() * 500,
        color: [255, 100 + Math.random() * 150, 100 + Math.random() * 150],
      },
    })
  }
})
</script>

API

PROPS

名称描述类型默认值
id图层Idstring-
get-position-AnyFunc-
get-height-number / AnyNumberFunc1000
trail-length-number100
speed-number10
get-Color-string / AnyFuncblack
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{}

EVENTS

名称描述参数

SLOTS

名称描述

METHODS

名称描述定义