arcgis二次开发动态追踪以及提高

arcgis二次开发动态追踪以及提高 前几天呢,想做动态追踪,发现这篇文章(https://blog.csdn.net/anlidengshiwei/article/details/41545301)写的不错,功能实现了之后,感觉可以更好,所有就自己就试着写了一下,本人新手,还望大家多多包涵;第一种方法,小车点的行进路径该有鼠标动态获取; double[]arrx=newdouble[1000];…

大家好,又见面了,我是你们的朋友全栈君。

  前几天呢,想做动态追踪,发现这篇文章(https://blog.csdn.net/anlidengshiwei/article/details/41545301)写的不错,功能实现了之后,感觉可以更好,所有就自己就试着写了一下,本人新手,还望大家多多包涵;

第一种方法,小车点的行进路径该有鼠标动态获取;  

        double[] arrx=new double[1000];
        double[] arry=new double[1000];
        int i = 0;
        private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)
        {
            arrx[i] = e.mapX;
            arry2[i] = e.mapY;
            i++;
        }

这是鼠标点击事件事件,获取用来获取点的坐标,

 private void timer1_Tick(object sender, EventArgs e)
        {
            if (s < i)
            {
                dx = arrx[s];
                dy = arry2[s];
                MoveCar();
                s++;
            }
            else {
                this.timer1.Dispose();
                MessageBox.Show("走完了");
               
            }
          
           
        }

这是对控件time1的处理

private void MoveCar()
        {
            //得到当前活动范围  

            IActiveView pActiveView = axMapControl1.ActiveView;
            //开始画笔   
            pActiveView.ScreenDisplay.StartDrawing(pActiveView.ScreenDisplay.hDC, (short)esriScreenCache.esriNoScreenCache);
            IPoint ppoint;
            IGeometry pgeo;
            IPictureMarkerSymbol psymbol = new PictureMarkerSymbolClass();
            IRgbColor prgbcolor = new RgbColorClass();
            prgbcolor.Red = 0;
            prgbcolor.Green = 0;
            prgbcolor.Blue = 0;

            psymbol.BitmapTransparencyColor = prgbcolor;
            psymbol.CreateMarkerSymbolFromFile(esriIPictureType.esriIPictureBitmap, @"C:\Users\deng\Desktop\毕业设计\NodeAnimation\Command1.bmp");
            psymbol.Size = 15;
            psymbol.Angle = 270;

            //ISimpleMarkerSymbol psimplesymbol = new SimpleMarkerSymbolClass();  
            //psimplesymbol.Size = 10;  
            //psimplesymbol.Color = (IColor)prgbcolor;  

            ppoint = new PointClass();
            ppoint.PutCoords(dx, dy);
            pgeo = ppoint;

            pActiveView.ScreenDisplay.SetSymbol((ISymbol)psymbol);
            pActiveView.ScreenDisplay.DrawPoint(ppoint);
            //结束画笔  
            pActiveView.ScreenDisplay.UpdateWindow();
            pActiveView.ScreenDisplay.FinishDrawing();
            //System.Object obj = psymbol;  
            //this.axMapControl1.DrawShape(pgeo, ref obj);  

            //this.axMapControl1.CenterAt(ppoint);  
            IEnvelope penv = this.axMapControl1.Extent;
            penv.CenterAt(ppoint);
            this.axMapControl1.Extent = penv;
        }

这是主要方法,与我之前学习的文章相同.

 private void toolStripButton1_Click(object sender, EventArgs e)
        {
            this.timer1.Enabled = true;
            this.timer1.Interval = 1000;     
        }

这是启动运行的方法

 int s = 0;
        double dx = 112.906;
        double dy = 27.912;
        IActiveView pactiveview;  
        public Form1()
        {
            InitializeComponent();
            timer1.Enabled = false;
            this.axToolbarControl1.SetBuddyControl(this.axMapControl1);
            pactiveview = this.axMapControl1.ActiveView;  
        }

运行之后可以在地图点击多个点,在点击

toolStripButton1

这个控件就会按照我们所选的位置行动

源码

https://download.csdn.net/download/qq_27380923/10373709


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163437.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java web 实战项目案例

    Java web 实战项目案例Javaweb实战项目,采用MVC的设计模式,jdbc编程,由Javaweb+Servlet+mysql实现简单的增删改查,模糊查询,导出excel表格数据等。以下是Javaweb项目详情案例Javaweb+mysql+servlet+eclipse实现Javaweb商城管理系统https://blog.csdn.net/liqz666/article/detail…

    2022年6月28日
    31
  • Laravel 6 proc_open修复「建议收藏」

    Laravel 6 proc_open修复「建议收藏」Laravel 6 proc_open修复

    2022年4月24日
    46
  • MySQL数据库建立数据库和表(命令行方式)

    MySQL数据库建立数据库和表(命令行方式)最近在学数据库系统概论,以前建表都是直接用workbeach,但是作为一个计算机专业的学生,我觉得能敲的时候就少点,所以分享一个自己用命令创建数据库和表的过程,希望对一些人有点用!安装好数据库后,我们可以看到这些东西可以这么简单的认识,划红线的是通过命令行来操作数据库,划绿线的是操作数据库的图形化界面,这里我分享的是通过命令行来操作,以《数据库系统概论》第五版第三章为例创建一个我们平时…

    2022年7月19日
    16
  • 分布式系统设计权衡之CAP(一致性,可用性,分区容错性)[通俗易懂]

    分布式系统设计权衡之CAP(一致性,可用性,分区容错性)[通俗易懂]https://blog.csdn.net/Sun_P0/article/details/50221787写在最前:1.为什么学习并记录分布式设计理念一系列相关的东西在日常工作中系统设计评审的时候,经常会有一些同事抛出一些概念,高可用性,一致性等等字眼,他们用这些最基本的概念去反驳系统最初的设计,但是很多人理解的可用性,一致性等等问题,都是自己拍脑袋想的,或者根本和最原始表达的意思就不…

    2022年7月25日
    12
  • ubuntu安装nginx教程_ubuntu服务器安装教程

    ubuntu安装nginx教程_ubuntu服务器安装教程ubuntu系统安装nginx

    2022年9月19日
    2
  • mysql字符串和数字的互相转换

    mysql字符串和数字的互相转换1.最简单的方式就是直接在字符串后面+0,就相当于直接把字符串转为数字类型了,下面可以看一下具体的操作,可以看到通过+0操作,成功将两个字符串转化为了数字,并得到了相加后的结果。2.使用CAST()函数,使用方式为CAST(valueAStype);,下面可以看一下具体的操作例子,通过如下sql语句查看结果:SELECTCAST(‘5.45’ASSIGNED);…

    2022年5月30日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号