> mapgis-3d-particle-effects

## # 属性

### # `vueKey`

- 类型: `String`
- 可选
- 非侦听属性
- 默认值: `default`
- 描述: mapgis-web-scene 组件的 ID，当使用多个 mapgis-web-scene 组件时，需要指定该值，来唯一标识 mapgis-web-scene 组件，同时 mapgis-web-scene 插槽中的组件也需要传入相同的 vueKey，让组件知道应该作用于哪一个 mapgis-web-scene。

### # `vueIndex`

- 类型: `Number`
- 可选
- 非侦听属性
- 默认值: `(Math.random() * 100000000).toFixed(0)`随机计算值
- 描述: 当 mapgis-web-scene 插槽中使用了多个相同组件时，例如多个 mapgis-3d-igs-doc-layer 组件，用来区分组件的标识符。

### # `symbolList`

- 类型: `Array`
- 可选
- 侦听属性
- 描述: 符号库参数配置
- 默认值: 其中config和iconUrl是非必传参数，config是指当前符号的粒子特效预设参数配置，当初始化生成该符号的粒子特效时使用这套config参数。 iconUrl是指当前符号对象的iconfont图标的type,若不传则默认图标使用image的png图片。

      [
        {
          guid: "C0EA27B2-0365-1F9F-C71A-B0586ADDCA0D",
          name: "火焰",
          image: "./fire.png",
          iconUrl: "mapgis-fire",
          config:{
            emitterType: "圆形放射",
            emissionRate: 13.0,
            imageSize: 5.0,
            minimumParticleLife: 2.0,
            maximumParticleLife: 3.0,
            minimumSpeed: 9.0,
            maximumSpeed: 10.0,
            startScale: 1.0,
            endScale: 4.0
          },
        },
        {
          guid: "B8AF7BAC-082F-14C6-BECD-8F7AB44C5019",
          name: "烟雾",
          image: "./smoke.png",
          iconUrl: "mapgis-smoke",
        }
      ]

### # `particleList`

- 类型: `Array`

- 可选

- 侦听属性

- v-model

- 描述: 粒子特效参数配置，传入该参数后在场景中自动生成对应的粒子特效，其中参数包括一下值：

      [{
                guid: "49A834D7-97C6-F452-4611-6F0739809B50",
                name: "粒子名称1",
                param: {
                    emitterType: "圆形放射",  //发射类型
                    emissionRate: 20.0,     //发射速率
                    imageSize: 5.0,         //尺寸
                    minimumParticleLife: 2.0,  //粒子最小存在时间
                    maximumParticleLife: 3.0,  //粒子最大存在时间
                    minimumSpeed: 9.0,         //最小速度
                    maximumSpeed: 10.0,        //最大速度
                    startScale: 1.0,           //初始比例
                    endScale: 4.0,             //结束比例
                    symbolGuid: "9D09DB87-7955-9295-2E34-61E83C30D3AA",
                    position: {
                        longitude: 115.0352606,
                        latitude: 27.00688591,
                        height: 1
                    }
                }
      }]

  其中数组中每个粒子对象包含下列参数：

  Name | Type | Description
  --- | --- | ---
  guid | String | 粒子唯一的 guid
  name | String | 粒子名称
  param | Object | 粒子特效配置参数

其中 param 对象中包含下列参数：

Name | Type | Description
--- | --- | ---
emitterType | String | 发射类型:可选 '盒状放射', '圆形放射', '锥形放射', '球形放射'
emissionRate | Number | 发射速率(个/秒)
imageSize | Number | 尺寸(像素)
minimumParticleLife | Number | 粒子最小存在时间(秒)
maximumParticleLife | Number | 粒子最大存在时间(秒)
minimumSpeed | Number | 最小速度(个/秒)
maximumSpeed | Number | 最大速度(个/秒)
startScale | Number | 初始比例
endScale | Number | 结束比例
symbolGuid | String | 该粒子特效对应的符号的 guid
position | Object | 该粒子特效生成所在的位置的坐标点，包含参数 longitude、latitude 和 height

- 默认值: []

## # 方法

### # `onCreateParticle`

- Description: 添加特效粒子

### # `onClearParticle`

- Description: 移除粒子特效

### # `onEmitterChange`

- Description: 切换发射类型，赋值可选 '盒状放射', '圆形放射', '锥形放射', '球形放射'
- Param: `{value}`
- `value` 发射类型

### # `onChangeEffect`

- Description: 动态修改参数，及时响应函数
- Param: `{val，key}` `val` 修改后的值 `key` 修改对应的参数名

## # 事件

### # `@load`

- Description: 在 ParticleEffects 加载完毕后发送该事件
- Payload ParticleEffects组件 对象

### # `@unload`

- Description: 关闭 ParticleEffects 组件前发送该事件
- Payload ParticleEffects组件对象

### # `@changeParticle`

- Description: ParticleEffects 组件 修改或新增、删除粒子列表参数时发送该事件
- Payload particleList 数组

## # 示例

    <template>
      <mapgis-web-scene :style="{ height: '100vh' }">
        <mapgis-3d-ogc-wmts-layer
          :baseUrl="url"
          :wmtsLayer="layer"
          :tileMatrixSet="tileMatrixSet"
          :format="format"
          :tilingScheme="tilingScheme"
          :token="token"
        ></mapgis-3d-ogc-wmts-layer>
        <mapgis-3d-igs-m3d
          :autoReset="autoReset"
          :maximumScreenSpaceError="maximumScreenSpaceError"
          :url="m3dUrl"
        ></mapgis-3d-igs-m3d>
        <mapgis-ui-card v-if="showParticle" class="storybook-ui-card">
          <mapgis-3d-particle-effects-manager
            :symbolList="symbolList"
            :particleList="particleList"
            @load="load"
          />
        </mapgis-ui-card>
        <mapgis-3d-statebar></mapgis-3d-statebar>
      </mapgis-web-scene>
    </template>

    <script>
    export default {
      data() {
        return {
          url: "http://t0.tianditu.gov.cn/img_c/wmts",
          m3dUrl: "http://develop.smaryun.com:6163/igs/rest/g3d/ZondyModels",
          maximumScreenSpaceError: 8,
          tileMatrixSet: "c",
          tilingScheme: "EPSG:4326",
          layer: "img",
          format: "tiles",
          token: {
            key: "tk",
            value: "2ddaabf906d4b5418aed0078e1657029",
          },
          autoReset: true,
          particleEffects: null,
          showParticle: true,
          symbolList: [
            {
              guid: "9D09DB87-7955-9295-2E34-61E83C30D3AA",
              name: "外部火焰",
              image: `http://localhost:8895/img/fire.png`,
              iconUrl: "mapgis-fire",
            },
            {
              guid: "F9FDE880-8F5B-AEDF-CA95-ADC54F02A34F",
              name: "外部烟雾",
              image: `http://localhost:8895/img/smoke.png`,
              iconUrl: "mapgis-smoke",
            },
          ],
          particleList: [
            {
              guid: "49A834D7-97C6-F452-4611-6F0739809B50",
              name: "粒子名称1",
              param: {
                emitterType: "圆形放射", //发射类型
                emissionRate: 20.0, //发射速率
                imageSize: 5.0, //尺寸
                minimumParticleLife: 2.0, //粒子最小存在时间
                maximumParticleLife: 3.0, //粒子最大存在时间
                minimumSpeed: 9.0, //最小速度
                maximumSpeed: 10.0, //最大速度
                startScale: 1.0, //初始比例
                endScale: 4.0, //结束比例
                symbolGuid: "9D09DB87-7955-9295-2E34-61E83C30D3AA",
                position: {
                  longitude: 115.0352606,
                  latitude: 27.00688591,
                  height: 1,
                },
              },
            },
            {
              guid: "36F335E8-1F3C-41E2-40AA-EE950D691761",
              name: "粒子名称2",
              param: {
                emitterType: "球形放射", //发射类型
                emissionRate: 40.0, //发射速率
                imageSize: 6.0, //尺寸
                minimumParticleLife: 2.0, //粒子最小存在时间
                maximumParticleLife: 3.0, //粒子最大存在时间
                minimumSpeed: 9.0, //最小速度
                maximumSpeed: 10.0, //最大速度
                startScale: 1.0, //初始比例
                endScale: 4.0, //结束比例
                symbolGuid: "9D09DB87-7955-9295-2E34-61E83C30D3AA",
                position: {
                  longitude: 115.03566638,
                  latitude: 27.00743179,
                  height: 1,
                },
              },
            },
          ],
        };
      },
      methods: {
        load(particleEffects) {
          this.particleEffects = particleEffects;
        }
      },
    };
    </script>