关于使用动画图层的一个方法
首先是要对图层进行初始化,初始出来新的一个图层中的两个图元。
private void btnInitializeObjects_Click(object sender, System.EventArgs e)
{
Catalog Cat = MapInfo.Engine.Session.Current.Catalog;
//Create Temp layer
TableInfoMemTable tblInfoTemp = new TableInfoMemTable("Animation");
Table tblTemp = Cat.GetTable("Animation");
if (tblTemp != null) //Table exists close it
Cat.CloseTable("Animation");
tblInfoTemp.Columns.Add(ColumnFactory.CreateFeatureGeometryColumn(mapControl1.Map.GetDisplayCoordSys()));
tblInfoTemp.Columns.Add(ColumnFactory.CreateStyleColumn());
tblInfoTemp.Columns.Add(ColumnFactory.CreateStringColumn("Name", 40));
tblInfoTemp.Columns.Add(ColumnFactory.CreateStringColumn("Dept", 15));
tblInfoTemp.Columns.Add(ColumnFactory.CreateIntColumn("Level"));
tblTemp = Cat.CreateTable(tblInfoTemp);
FeatureLayer lyr = new FeatureLayer(tblTemp);
mapControl1.Map.Layers.Add(lyr);
//Create Points
FeatureGeometry pt = new MapInfo.Geometry.Point(lyr.CoordSys, new DPoint(130, 42)) as FeatureGeometry;
CompositeStyle cs = new CompositeStyle(new SimpleVectorPointStyle(37, System.Drawing.Color.Red, 10));
Feature ftr = new Feature(tblTemp.TableInfo.Columns);
ftr.Geometry = pt;
ftr.Style = cs;
ftr["Name"] = "Kelly";
ftr["Dept"] = "Sales";
ftr["Level"] = 3;
tblTemp.InsertFeature(ftr);
FeatureGeometry pt2 = new MapInfo.Geometry.Point(lyr.CoordSys, new DPoint(122, 45)) as FeatureGeometry;
CompositeStyle cs2 = new CompositeStyle(new SimpleVectorPointStyle(44, System.Drawing.Color.Purple, 10));
Feature ftr2 = new Feature(tblTemp.TableInfo.Columns);
ftr2.Geometry = pt2;
ftr2.Style = cs2;
ftr2["Name"] = "Greg";
ftr2["Dept"] = "Marketing";
ftr2["Level"] = 2;
tblTemp.InsertFeature(ftr2);
}
在Timer事件中进行对图元的移动。
private void timer1_Tick(object sender, System.EventArgs e)
{
Catalog  cat = MapInfo.Engine.Session.Current.Catalog;
Table tbl = cat.GetTable("Animation");
if (tbl != null) 
{
//Update the position of the points
SearchInfo  si = MapInfo.Data.SearchInfoFactory.SearchWhere("Name = 'Kelly'");
Feature ftr = cat.SearchForFeature(tbl, si);
SearchInfo si2 = MapInfo.Data.SearchInfoFactory.SearchWhere("Name = 'Greg'");
Feature ftr2 = cat.SearchForFeature(tbl, si2);
if (DateTime.Now.TimeOfDay.Seconds % 4 == 0)
{
ftr.Geometry.GeometryEditor.OffsetByXY(-5, -25, DistanceUnit.Mile, DistanceType.Spherical);
ftr2.Geometry.GeometryEditor.OffsetByXY(0, 25, DistanceUnit.Mile, DistanceType.Spherical);
}
else
{
ftr.Geometry.GeometryEditor.OffsetByXY(-10, 0, DistanceUnit.Mile, DistanceType.Spherical);
ftr2.Geometry.GeometryEditor.OffsetByXY(10, 5, DistanceUnit.Mile, DistanceType.Spherical);
}
ftr.Geometry.EditingComplete();
ftr2.Geometry.EditingComplete();
ftr.Update();
ftr2.Update();
}
}

MapXtreme2005中关于使用动画图层的一个方法相关推荐

  1. Java黑皮书课后题第6章:*6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数。编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数

    6.20(计算一个字符串中字母的个数)编写一个方法,使用下面的方法体计算字符串中的字母个数.编写一个测试程序,提示用户输入字符串,然后显示字符串中的字母个数 题目 题目描述 破题 代码 运行示例 题目 ...

  2. 一种在Houdini中让顶点动画循环的简单方法

    问题 问题的来源是我想导出一个布料的顶点动画,并让他循环播放. 但问题是,直接模拟出的结果不能保证在我想导出那一段的首帧与末帧一致,这样动画是不循环的,连续播放会看到明显的跳变. 我在这里找到了一种简 ...

  3. 【原创】关于AE中进行循环动画的几种方法

    前段时间做一个蝴蝶飞舞的动画,一时用土办法将蝴蝶扇动翅膀进行循环. 很麻烦的说.而且效果还不是很精确的说. 网上查了一下,看到一个不知道是什么数码网的有一篇文章讲解了三种方法,其实是两类方法而已,之所 ...

  4. SVN工作笔记006---解决TortoiseSVN中out of date问题的一个方法

    JAVA技术交流QQ群:170933152 从去年开始,公司的代码管理从CVS转向了subvsersion,后者确实是前者的一个飞跃,尤其是使用与Windows资源管理器相集成的TortoiseSVN ...

  5. unity 2D游戏开发 制作帧动画的两种方法

    本小主在这里给大家分享一下unity 2D游戏开发中制作帧动画的两种方法. 比较简单,一学即会. 方法一: 是用代码控制: 先创建一个2D工程.导入图片资源,并设置texture的texture ty ...

  6. ios 按钮图片拉伸_iOS中实现图片自适应拉伸效果的方法

    前言 在Android中实现图片的拉伸特别特别简单,甚至不用写一行代码,直接使用.9图片进行划线即可.但是iOS就没这么简单了,比如对于下面的一张图片(原始尺寸:200*103): 我们不做任何处理, ...

  7. Cocos2d-x 3.8.1+Cocos Studio 2.3.2捉虫记之控制场景文件中的骨骼动画

    Cocos2d-x 3.8.1+Cocos Studio 2.3.2捉虫记之控制场景文件中的骨骼动画 引子 这段时间一直努力在把早期版本的拇指接龙游戏(Cocos2d-x 2.2.3+CocoStud ...

  8. Ps 初学者教程「63」如何在 Ps 中制作 GIF 动画?

    欢迎观看 Photoshop 教程,小编带大家了解如何为图像添加运动将其转换为 GIF 动画. 如今,网络全都与运动有关,因此 GIF 无处不在.为图像添加运动可以帮助它讲述一个更复杂的故事--而 p ...

  9. 在UE4中创建CG动画 How to create a movie in Unreal Engine 4 using Metahuman

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:1.55 GB |时长:1h 16m 你会学到什么 如何在 ...

  10. android中设置Animation 动画效果

    在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...

最新文章

  1. swift UI专项训练4 场景过渡-转场
  2. rabbitmq python_Python操作RabbitMQ服务器实现消息队列的路由功能
  3. java web核心知识_JAVA web 相关知识点
  4. 20-Joint entity and relation extraction based on a hybrid neural network(LSTM-ED+CNN),考虑长距离的实体标签之间的关
  5. vue 后台数据列表获取图片_vue使用ajax获取后台数据进行显示的示例
  6. Renting Boats
  7. 下面的程序可以从0....n-1中随机等概率的输出m个不重复的数。(假设nm)
  8. opencv图像直方图的计算及绘制
  9. php经过twemproxy无法delete后端memcache值的解决方法
  10. 【牛客网SQL篇】SQL必知必会
  11. switch语句表达式和执行流程
  12. Python调用百度API进行动植物识别
  13. 基于matlab的天线方向图,基于matlab的天线方向图
  14. Hbase与Oracle比较(列式数据库与行式数据库)
  15. 输油管道监测解决方案
  16. 【性能】perf + 火焰图分析软件性能瓶颈
  17. linux修改文件夹的访问权限,linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组...
  18. ELK+Filebeat 部署安装
  19. C语言求ex的近似值
  20. 机器学习SVM算法数字识别器

热门文章

  1. Java开发笔记(一百三十九)JavaFX的输入框
  2. python Selenium启动chromedriver
  3. NYOJ 93 汉诺塔(三) 【栈的简单应用】
  4. error: not found: value sc
  5. POJ 3756 多边形内角和
  6. python按键按下改变数值_「正点原子NANO STM32开发板资料连载」第十六章电容触摸按键实验...
  7. hadoop1.2.1伪分布式搭建
  8. hadoop1.0集群搭建
  9. 走火入魔.NET从C/S单点登录到B/S系统的例子,SUID(System Unique Identification)
  10. Grafana+Telegraf+Influxdb监控Tomcat集群方案