历史轨迹回放

来源:互联网 发布:人民日报数据库账号 编辑:程序博客网 时间:2024/04/30 02:06

在网上搜了很久都没有找到合适的帖子.

所以做这个花了很多时间精力,但总算解决了.

本来是想用多线程,委托之类的,但是由于需要刷新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);

        }

原创粉丝点击