历史轨迹回放

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

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

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

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值