コード例 #1
0
ファイル: F测距.cs プロジェクト: xiaomiwk/K_gps
        void out地图_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Right)
            {
                return;
            }

            var __当前位置 = _F地图.屏幕坐标转经纬度(e.Location);

            if (_上一个点 == null)
            {
                //起点
                _当前测距 = new M测距();
                _当前测距.点集合.Add(_F地图.添加点(__当前位置, Properties.Resources.测距起点, "起点", null, null, E标题显示方式.Always));
                _上一个点 = __当前位置;
                return;
            }
            var __距离 = H地图算法.测量两点间间距(_上一个点, __当前位置);

            _当前测距.线集合.Add(_F地图.添加线(new List <M经纬度> {
                _上一个点, __当前位置
            }, 2, Color.FromArgb(252, 135, 78)));
            _当前测距.点集合.Add(_F地图.添加点(__当前位置, Properties.Resources.测距起点, 获取距离描述(__距离 + _当前测距.距离), null, null, E标题显示方式.Always));
            _当前测距.距离 = __距离 + _当前测距.距离;
            _上一个点    = __当前位置;
        }
コード例 #2
0
        public void 结束()
        {
            _F地图.MouseDown -= out地图_MouseDown;
            _F地图.MouseMove -= out地图_MouseMove;
            _F地图.MouseUp   -= out地图_MouseUp;

            //Debug.WriteLine("鼠标释放位置: " + e.Location);
            var __圆心   = _F地图.屏幕坐标转经纬度(_起点);
            var __当前位置 = _F地图.屏幕坐标转经纬度(_终点);
            //获取圈选内容
            var __半径 = H地图算法.测量两点间间距(__圆心, __当前位置);

            On圈选结束(__圆心, __半径);
        }
コード例 #3
0
        void do保存_Click(object sender, EventArgs e)
        {
            switch (当前方式)
            {
            case E圈选方式.无:
                break;

            case E圈选方式.矩形:
                if (_鼠标点击位置列表.Count != 2)
                {
                    new F对话框_确定("请使用鼠标右键绘图").ShowDialog();
                    return;
                }
                var __矩形起点 = _I地图.屏幕坐标转经纬度(_鼠标点击位置列表[0]);
                var __矩形终点 = _I地图.屏幕坐标转经纬度(_鼠标点击位置列表[1]);
                On处理矩形圈选结束(__矩形起点, __矩形终点);
                break;

            case E圈选方式.圆形:
                if (_鼠标点击位置列表.Count != 2)
                {
                    new F对话框_确定("请使用鼠标右键绘图").ShowDialog();
                    return;
                }
                var __圆形起点 = _I地图.屏幕坐标转经纬度(_鼠标点击位置列表[0]);
                var __圆形终点 = _I地图.屏幕坐标转经纬度(_鼠标点击位置列表[1]);
                var __圆心   = __圆形起点;
                var __半径   = H地图算法.测量两点间间距(__圆心, __圆形终点);
                On处理圆形圈选结束(__圆心, __半径);
                break;

            case E圈选方式.多边形:
                if (_鼠标点击位置列表.Count < 4)
                {
                    new F对话框_确定("请使用鼠标右键绘图").ShowDialog();
                    return;
                }
                var __顶点列表 = _鼠标点击位置列表.Select(q => _I地图.屏幕坐标转经纬度(q)).ToList();
                On处理多边形圈选结束(__顶点列表);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            清除();
        }
コード例 #4
0
        private void 绘制矩形(MouseEventArgs e)
        {
            var __起点 = _I地图.屏幕坐标转经纬度(_鼠标点击位置列表[0]);
            var __终点 = _I地图.屏幕坐标转经纬度(e.Location);

            _I地图.除矩形(_圈选图形索引);
            _圈选图形索引 = _I地图.添加矩形(__起点, __终点, new M区域绘制参数 {
                边框宽度 = 1, 边框颜色 = Color.FromArgb(255, 0, 0, 255), 填充颜色 = Color.FromArgb(55, 135, 206, 235)
            });
        }