Exemplo n.º 1
0
        void do多次圈选_Click(object sender, EventArgs e)
        {
            var __绘制参数 = new M区域绘制参数 {
                边框宽度 = 1, 边框颜色 = Color.FromArgb(180, Color.Green), 填充颜色 = Color.FromArgb(20, Color.Green)
            };
            var __圆形索引  = new List <ulong>();
            var __矩形索引  = new List <ulong>();
            var __多边形索引 = new List <ulong>();
            Action <M经纬度, int>    __处理圈选圆形  = (__圆心, __半径) => __圆形索引.Add(_IF地图.添加圆(__圆心, __半径, __绘制参数));
            Action <M经纬度, M经纬度>   __处理圈选矩形  = (__左上角, __右下角) => __矩形索引.Add(_IF地图.添加矩形(__左上角, __右下角, __绘制参数));
            Action <List <M经纬度> > __处理圈选多边形 = __顶点列表 => __多边形索引.Add(_IF地图.添加多边形(__顶点列表, __绘制参数));

            _多次圈选窗口.处理矩形圈选结束       += __处理圈选矩形;
            _多次圈选窗口.处理圆形圈选结束       += __处理圈选圆形;
            _多次圈选窗口.处理多边形圈选结束      += __处理圈选多边形;
            _多次圈选窗口.VisibleChanged += (sender1, e1) =>
            {
                if (!_多次圈选窗口.Visible)
                {
                    _多次圈选窗口.除圈选区域();
                    //删除图形
                    __圆形索引.ForEach(q => _IF地图.除圆(q));
                    __矩形索引.ForEach(q => _IF地图.除矩形(q));
                    __多边形索引.ForEach(q => _IF地图.除多边形(q));
                    _多次圈选窗口.处理矩形圈选结束  -= __处理圈选矩形;
                    _多次圈选窗口.处理圆形圈选结束  -= __处理圈选圆形;
                    _多次圈选窗口.处理多边形圈选结束 -= __处理圈选多边形;
                }
            };
            _多次圈选窗口.Visible = true;
        }
Exemplo n.º 2
0
        private void 添加多次圈选(F纯地图 __纯地图)
        {
            var __圆形索引  = new List <ulong>();
            var __矩形索引  = new List <ulong>();
            var __多边形索引 = new List <ulong>();
            var __绘制参数  = new M区域绘制参数 {
                边框宽度 = 1, 边框颜色 = Color.FromArgb(180, Color.Green), 填充颜色 = Color.FromArgb(20, Color.Green)
            };
            Action <M经纬度, int>    __处理圈选圆形  = (__圆心, __半径) => __圆形索引.Add(__纯地图.地图.添加圆(__圆心, __半径, __绘制参数));
            Action <M经纬度, M经纬度>   __处理圈选矩形  = (__左上角, __右下角) => __矩形索引.Add(__纯地图.地图.添加矩形(__左上角, __右下角, __绘制参数));
            Action <List <M经纬度> > __处理圈选多边形 = __顶点列表 => __多边形索引.Add(__纯地图.地图.添加多边形(__顶点列表, __绘制参数));

            var __圈选控件 = new F圈选_多次(__纯地图.地图)
            {
                Left = __纯地图.Left + 50,
                Top  = __纯地图.Top + 10,
            };

            __圈选控件.处理矩形圈选结束  += __处理圈选矩形;
            __圈选控件.处理圆形圈选结束  += __处理圈选圆形;
            __圈选控件.处理多边形圈选结束 += __处理圈选多边形;
            __圈选控件.请求关闭      += () =>
            {
                __圆形索引.ForEach(q => __纯地图.地图.除圆(q));
                __矩形索引.ForEach(q => __纯地图.地图.除矩形(q));
                __多边形索引.ForEach(q => __纯地图.地图.除多边形(q));

                __圈选控件.除圈选区域();
                __纯地图.Controls.Remove(__圈选控件);
                __圈选控件.Dispose();
            };
            __纯地图.Controls.Add(__圈选控件);
            __圈选控件.BringToFront();
        }
Exemplo n.º 3
0
 public UInt64 添加多边形(List <Point> __点列表, M区域绘制参数 __绘制参数, object __绑定对象 = null)
 {
     return(base.添加多边形(__点列表.Select(转换).ToList(), __绘制参数, __绑定对象));
 }
Exemplo n.º 4
0
 public UInt64 添加圆(Point __圆心, int __半径, M区域绘制参数 __绘制参数, object __绑定对象 = null)
 {
     return(base.添加圆(转换(__圆心), __半径, __绘制参数, __绑定对象));
 }