作者:贤

目录

  • 1. 介绍
  • 2. 开发环境
  • 3. 流程设计
    • 3.1. 核心逻辑
    • 3.2. 整体流程
  • 4. 代码实现
    • 4.1. 渐变填充雷达扫描区域的扇形
    • 4.2. 定时器刷新实现雷达动态效果
  • 5. 总结

1. 介绍

  SuperMap iObjects .NET 是基于 Microsoft 的 .NET 技术开发的一款 SDK 产品,该篇主要说明如何基于 SuperMap iObjects .NET 组件实现在二维地图上的雷达扫描的动画效果。

  话不多说,先看效果,如下图所示效果满足您的需求,请详细阅读以下内容;若该雷达动画无法满足您的当前需求,可在此篇评论您的需求以及此示例的改进建议。

2. 开发环境

软件 版本 下载地址 说明
SuperMap iObjects .NET 10i 及以上版本 http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx 建议参考 SuperMap iObjects .NET 组件包中的帮助文档进行环境和许可配置
Visual Studio 2022 及以上版本 https://visualstudio.microsoft.com/zh-hans/ SuperMap iObjects .NET 从 10.2.0 版本开始只提供 64 位组件包,Visual Studio 2022 开始支持在工具箱中添加 SuperMap iObjects .NET 64 位 UI 控件

3. 流程设计

3.1. 核心逻辑

  • 为基于 SuperMap iObjects .NET 组件实现雷达扫描效果动画,主要分为以下核心流程:

    • 使用 MapControl UI 控件绘制地图底图和雷达几何数据,雷达扫描扇形区域用渐变填充;
    • 设置定时器用于实时刷新雷达扫描区域的位置;
    • 在定时器触发事件中计算定点旋转的雷达扫描扇形区域的动态位置并同步设置渐变填充的旋转角度;
    • 更新追踪图层上的雷达扫描扇形数据并刷新。

3.2. 整体流程

  • 详细步骤如下流程图所示:

4. 代码实现

4.1. 渐变填充雷达扫描区域的扇形

if (geometry is GeoRegion radar)
{// 渐变填充GeoStyle geoStyle = new GeoStyle{FillForeColor = Color.White,FillBackColor = Color.Green,FillOpaqueRate = 50,// 线性渐变FillGradientMode = FillGradientMode.Linear,// 渐变填充旋转角度FillGradientAngle = 270,// 隐藏扇形边框LineSymbolID = 5};radar.Style = geoStyle;Map map = mapControl.Map;// 在追踪图层上添加雷达扫描区域扇形几何进行绘制map.TrackingLayer.Add(radar, "radar");map.ViewBounds = mapViewBounds;map.RefreshTrackingLayer();
}

4.2. 定时器刷新实现雷达动态效果

  • 新建定时器

    if (timer == null)
    {// 每 5 毫秒刷新一次timer = new System.Timers.Timer(5);// 绑定刷新事件timer.Elapsed += Timer_Elapsed;
    }
    
  • 定时器刷新触发事件实现雷达扫描动画效果

    private void Timer_Elapsed(object sender, System.TimersElapsedEventArgs e)
    {// 动态调整扇形渐变填充旋转角度radar.Style.FillGradientAngle -= 1;if (radar.Style.FillGradientAngle <= -0){radar.Style.FillGradientAngle = 360;}// 定点调整扇形位置radar.Rotate(new Point2D(104.431623223191, 34.4962593960899), -1);Map map = mapControl.Map;int index = map.TrackingLayer.IndexOf("radar");// 更新追踪图层上雷达扫描区域的位置map.TrackingLayer.Set(index, radar);map.RefreshTrackingLayer();
    }
    

5. 总结

  基于 SuperMap iObjects .NET 组件实现雷达扫描动画,若通过上述教程学习自行实现时依然存在逻辑不清晰的情况,建议可以参考示例源码 SuperMapRadarScanningSample

SuperMap iObjects .NET 之雷达扫描动画相关推荐

  1. CSS3实现的雷达扫描动画js特效

    下载地址 CSS3实现的雷达扫描动画特效代码 dd:

  2. Android自定义View实现雷达扫描动画

    最近在项目中有用到雷达扫描动画,这个效果也常被用于扫描或定位等事件,通过一个小Demo对此进行一下总结. 动画截图如下: Android的动画分两类:一类是Tween动画,就是对场景里的对象不断的进行 ...

  3. 用Canvas在SurfaceView上绘制一个雷达扫描动画

    用Canvas在SurfaceView上绘制一个雷达扫描动画 目录 用Canvas在SurfaceView上绘制一个雷达扫描动画 目录 为什么选择SurfaceView 准备工作 构建MySurfac ...

  4. html5 canvas实现雷达扫描动画特效

    先看一下最终效果 实现思路 绘制4个圆 绘制一个十字线 绘制一个扫描的指针 让指针转起来 雷达构造函数 function Radar(){this.renderArr=[];//待渲染对象存储数组th ...

  5. Canvas编程练习:20几行js代码实现雷达扫描动画效果

    灵感源于一不小心挖了一个陈年老贴etherdream发的<[分享]魔兽技能冷却效果(希望能有更好的思路)>的坟,看他的代码太长(约200行),于是自己动手写了一个,也就20多行代码,效果也 ...

  6. 如何用纯 CSS 创作一个雷达扫描动画

    效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VdbGvr 可交互视频 ...

  7. android 雷达搜索动画,Android实现微信雷达辐射搜索好友实例(逻辑清晰实现简单)...

    Android仿微信雷达扫描,仿安卓微信.云播雷达扫描动画效果点击中间的黑色圆圈开始扫描动画,再次点击复位,需要这种效果的朋友快点收藏了吧. 效果图如下: 这个界面大家肯定都非常熟悉了,下面来说一下原 ...

  8. 27.Silverlight二维旋转+平面渐变+动画,模拟雷达扫描图之基本框架

    在现实生活中的雷达运行扫描到物体的某一些属性(比如:速度,频率)超过安全范围值将会报警.在实际的某一些项目中(比如监控系统),我们也想制作一个雷达扫描图来模拟扫描各种设备那么应该如何做呢? 我们将各种 ...

  9. Silverlight实用窍门系列:27.Silverlight二维旋转+平面渐变+动画,模拟雷达扫描图之基本框架【附带源码实例】...

    在现实生活中的雷达运行扫描到物体的某一些属性(比如:速度,频率)超过安全范围值将会报警.在实际的某一些项目中(比如监控系统),我们也想制作一个雷达扫描图来模拟扫描各种设备那么应该如何做呢? 我们将各种 ...

最新文章

  1. 用来代替SQUID的软件VARNISH
  2. 常用24个方法有效优化ASP.NET的性能
  3. python连接mysql中报错1064修改方法
  4. 【负载均衡】揭开F5 BIG-IP的神秘面纱(一)
  5. ESP8266/ESP32 NVS 基本操作
  6. pipeline代码自动生成
  7. 【转载】一次项目管理交流会总结
  8. 服务器搭建成虚拟空间,服务器搭建虚拟空间
  9. 33.错误处理(2)
  10. 一些开源的统计机器翻译系统简要介绍
  11. 深入浅出Python闭包
  12. centos7 Rsync服务端和windows cwRsync实现数据同步(增量备份)
  13. cam350怎么看顶层_CAM350常用快捷键
  14. Transmission搭建BT下载服务器
  15. 英语caement水泥
  16. 抛弃flex执念:利用border-collapse实现顺序展示的快速方法
  17. arduino、Ms5611与1602实现气压温度高度显示
  18. 2022年湖北潜江助理工程师职称评审申报流程及时间是什么时候?甘建二
  19. ObjectARX--自定义圆的实现
  20. 配送时间选择器(uniapp)

热门文章

  1. 在锈中写一个现代的http隧道
  2. 女生怎么培养自己的气质
  3. Spring Boot 2.0(六):使用 Docker 部署 Spring Boot 开源软件云收藏
  4. 播(组播)、单播、任播和广播
  5. 移动硬盘运行linux很烫,硬盘烫手正常吗
  6. html怎么隐藏a标签
  7. 名企实习一年我学会15件事(转)
  8. itx机箱尺寸_ITX方案推荐--机箱篇
  9. Vue前端JavaScript实现PDF预览与图片预览
  10. Maxthon快捷组手动排序(转)