SuperMap iClient JS之模拟预警点闪烁

作者:WJH

创建动态矢量要素,可参考JavaScript API中的SuperMap.Layer.AnimatorVector,车辆监控、气象模拟等都可以实现。当前是做了一个污染源监测预警点闪烁的效果。

先创建一个矢量动画图层。初始化的时候设置所需要的rendererType(渲染类型),当前设置的是一个点闪烁、尾巴渲染:”TadpolePoint”。和timeName属性,默认值为TIME,当前设置的是自定义的图层属性-PointTime。代码如下:

mySelf.animatorVector = new SuperMap.Layer.AnimatorVector("Train", {rendererType: "TadpolePoint",timeName:"PointTime"}, {
            //设置速度为每帧播放0.02小时的数据
            speed: 2,
            //每秒渲染10帧
            frameRate:10,
            //开始时间为0晨
            startTime: 0,
            //结束时间设置为最后运行结束的时间
            endTime: 100
        });

其中动态图层中包括**tail(是否开启闪烁效果,默认为true)和glint(是否开启尾巴效果,默认为true)**两个属性。如果不需要尾巴的话,就把tail设置为false就可以了。
如果想实现带运动轨迹的效果,可借鉴supermap上的实例,其效果如下:

在这里插入图片描述

这里稍微做了一些更改,模拟预警点闪烁,不让点移动,代码如下:

data.forEach((attr,index) =>{
    attr.FEATUREID = index,attr.PointTime = 0;
    var pointFeature1 = new SuperMap.Feature.Vector(new SuperMap.Geometry.Point(attr.longitude,attr.latitude),attr,mySelf.style);
                    
    attr.FEATUREID = index,attr.PointTime = 100;
    var pointFeature2 = new SuperMap.Feature.Vector(new SuperMap.Geometry.Point(attr.longitude,attr.latitude),attr,mySelf.style)
    mySelf.pointFeatures.push(pointFeature1,pointFeature2);
})
mySelf.animatorVector.addFeatures(mySelf.pointFeatures);
mySelf.animatorVector.renderer.tail = !mySelf.animatorVector.renderer.tail;
mySelf.animatorVector.animator.start();

把点的开始位置跟结束位置设置为同一个位置,其闪烁位置也就不变。
最后效果:
在这里插入图片描述

### 如何将程序烧录到STM32F103C8T6最小系统板 #### 准备工作 为了成功地将程序烧录到STM32F103C8T6最小系统板上,需准备以下工具和材料: - STM32F103C8T6最小系统板 - ST-Link V2 或者其他兼容的ST-Link调试器/编程器 - USB数据线用于连接计算机与ST-Link设备 - 开发环境(如Keil MDK, IAR Embedded Workbench, STM32CubeIDE) #### 烧录过程 对于STM32系列微控制器而言,通常会把Bootloader放置于`0x8000000`地址处[^1]。然而,在实际应用中,大多数情况下并不直接操作Bootloader而是利用现成的开发工具链来完成整个编译链接以及最终的目标文件生成。 当准备好上述提到的所有必要组件之后,可以按照下面的方法来进行固件上传: 1. 将ST-Link通过Micro USB接口连接至个人电脑,并确保驱动已正确安装; 2. 使用跳帽或者杜邦线将ST-Link上的SWDIO、SWCLK、GND、NRST四个信号端子分别对应接到目标板相同名称的位置上去;如果采用的是四针排母形式,则可以直接插上即可[^2]; 3. 打开所使用的集成开发环境(IDE),加载项目工程并构建得到`.hex`或`.bin`格式的目标二进制映像文件; 4. 启动配套提供的Flash Loader Demonstration软件或者其他第三方flasher应用程序,设置好通信参数后击“Program”按钮执行刷机动作直至提示顺利完成为止。 值得注意的是,除了官方推荐的方式外还可以借助串口实现在线更新功能,不过这往往涉及到额外的设计考量比如电路布局调整以适应UART协议的要求等复杂情况因此这里不做赘述。 ```cpp // 示例:简单的LED闪烁代码片段适用于STM32F103C8Tx芯片 #include "stm32f1xx_hal.h" int main(void){ HAL_Init(); __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA,&GPIO_InitStruct); while (true){ HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5); // 切换PA5引脚电平状态 HAL_Delay(500); // 延迟半秒时间 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值