在网上搜了很久都没有找到合适的帖子.
所以做这个花了很多时间精力,但总算解决了.
本来是想用多线程,委托之类的,但是由于需要刷新axMapControl,也就是需要传参数,搞的很狼狈(有时间再研究),还不知怎样通过自定义的多线程解决:在新创建的线程中对从数据库中查询出的结果(包含经纬度信息)进行处理:从第二个有效点(例如经纬度数值为零或负的无效)开始,跟其前一个有效点构成"线",加到axMapControl中并显示出来,以此类推,画出轨迹.
最终得知用Timer控件比较好,很容易的解决了.代码如下:
数据是从数据库中得出.要显示的符号是从文件中读取.
其实位置信息可以通过手动在axMapControl中点击获取,如下:
//用来存储坐标的类 public class LL { public double Longitude; public double Latitude; } //获取点 public static IList<LL> phss = new List<LL>();
private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) { LL ll = new LL(); ll.Longitude = e.mapX; ll.Latitude = e.mapY; phss.Add(ll); }
轨迹回放与地图绘制
本文介绍了一种使用ArcGIS组件实现车辆轨迹回放的方法,包括如何从数据库中获取历史位置数据,并将其显示在地图上形成轨迹。通过定时器控件实现平滑的动画效果,同时介绍了车辆图标和标签的动态更新。
368

被折叠的 条评论
为什么被折叠?



