Exemplo n.º 1
0
        void do区域检索_城市_Click(object sender, EventArgs e)
        {
            _区域检索索引.ForEach(q => _IF地图.除点(q));
            var __关键字 = this.in区域检索_关键字.Text.Trim();
            var __城市  = this.in区域检索_城市.Text.Trim();

            try
            {
                var __点集合 = H信息查询.区域检索(__关键字, __城市);
                if (__点集合.Count == 0)
                {
                    MessageBox.Show("未找到信息");
                    return;
                }
                __点集合.ForEach(q => _区域检索索引.Add(_IF地图.添加点(q.Item1, H图标.获取图标(E常用图标.默认图标_红色), q.Item2, null, null, E标题显示方式.Always)));
                _IF地图.定位(__点集合.Select(q => q.Item1).ToList());
            }
            catch (NotImplementedException)
            {
                MessageBox.Show("该功能未实现");
            }
            catch (Exception ex)
            {
                MessageBox.Show("未找到信息\n\r" + ex.Message);
            }
        }
Exemplo n.º 2
0
        void _区域检索_处理圆形圈选结束(M经纬度 __圆心, int __半径)
        {
            _区域检索索引.ForEach(q => _IF地图.除点(q));
            var __关键字 = this.in区域检索_关键字.Text.Trim();

            if (string.IsNullOrEmpty(__关键字))
            {
                MessageBox.Show("请输入关键字");
                return;
            }
            try
            {
                var __点集合 = H信息查询.区域检索(__关键字, __圆心, __半径);
                if (__点集合.Count == 0)
                {
                    MessageBox.Show("未找到信息");
                    return;
                }
                __点集合.ForEach(q => _区域检索索引.Add(_IF地图.添加点(q.Item1, H图标.获取图标(E常用图标.默认图标_红色), q.Item2, null, null, E标题显示方式.Always)));
                //_I地图.定位(__点集合.Select(q => q.Item1).ToList());
            }
            catch (NotImplementedException)
            {
                MessageBox.Show("该功能未实现");
            }
            catch (Exception ex)
            {
                MessageBox.Show("未找到信息\n\r" + ex.Message);
            }
        }
Exemplo n.º 3
0
        void do逆地址编码_Click(object sender, EventArgs e)
        {
            var __经度 = this.in逆地址编码_经度.Text.Trim();
            var __纬度 = this.in逆地址编码_纬度.Text.Trim();

            if (string.IsNullOrEmpty(__经度) || string.IsNullOrEmpty(__纬度))
            {
                _地址编码索引.ForEach(q => _IF地图.除点(q));
                return;
            }
            try
            {
                var __点 = new M经纬度(double.Parse(__经度), double.Parse(__纬度))
                {
                    类型 = E坐标类型.谷歌
                };
                var __地名 = H信息查询.逆地址编码(__点);
                if (string.IsNullOrEmpty(__地名))
                {
                    MessageBox.Show("未找到地名");
                    return;
                }
                _地址编码索引.Add(_IF地图.添加点(__点, H图标.获取图标(E常用图标.默认图标_红色), __地名, null, null, E标题显示方式.Always));
                _IF地图.定位(__点);
                MessageBox.Show(__地名);
            }
            catch (NotImplementedException)
            {
                MessageBox.Show("该功能未实现");
            }
            catch (Exception ex)
            {
                MessageBox.Show("未找到地名\n\r" + ex.Message);
            }
        }
Exemplo n.º 4
0
        void do地址编码_Click(object sender, EventArgs e)
        {
            var __地名 = this.in地址编码_地名.Text.Trim();
            var __城市 = this.in地址编码_城市.Text.Trim();

            if (string.IsNullOrEmpty(__地名))
            {
                _地址编码索引.ForEach(q => _IF地图.除点(q));
                return;
            }
            try
            {
                var __点 = H信息查询.地址编码(__地名, __城市);
                if (__点 == null)
                {
                    MessageBox.Show("未找到地名");
                    return;
                }
                _地址编码索引.Add(_IF地图.添加点(__点, H图标.获取图标(E常用图标.默认图标_红色), __地名, null, null, E标题显示方式.Always));
                _IF地图.定位(__点);
                MessageBox.Show(__点.ToString());
            }
            catch (NotImplementedException)
            {
                MessageBox.Show("该功能未实现");
            }
            catch (Exception ex)
            {
                MessageBox.Show("未找到地名\n\r" + ex.Message);
            }
        }
Exemplo n.º 5
0
        void do添加覆盖物2_Click(object sender, EventArgs e)
        {
            //添加随机用户麻点
            var r    = new Random();
            var __图标 = H图标.获取图标(E常用图标.默认图标_红色_小);

            for (int i = 0; i < 5000; i++)
            {
                var __经度  = _中心位置.经度 - 0.5 + r.NextDouble() * 1;
                var __纬度  = _中心位置.纬度 - 0.5 + r.NextDouble() * 1;
                var __经纬度 = new M经纬度(__经度, __纬度);
                _圈选测试数据.Add(__经纬度);
            }
            //_圈选测试数据.Add(new M经纬度(118.8200000, 32.0500000));
            //_圈选测试数据.Add(new M经纬度(118.8220000, 32.0520000));
            //_圈选测试数据.Add(new M经纬度(118.8240000, 32.0540000));
            //_圈选测试数据.Add(new M经纬度(118.8160000, 32.0560000));
            //_圈选测试数据.Add(new M经纬度(118.8160000, 32.0580000));
            _麻点图索引.Add(_IF地图.添加麻点图(_圈选测试数据, __图标));

            //添加行政区域
            var __行政区 = H行政区位置.所有.Find(q => q.省 == "江苏省" && q.市 == "南京市" && q.区 == "浦口区");

            if (__行政区 != null && __行政区.边界坐标.Count > 0)
            {
                _线索引.Add(_IF地图.添加线(__行政区.边界坐标[0], 2, Color.Blue));
            }
        }
Exemplo n.º 6
0
        private Bitmap 创建图标(string __类型, string __样式)
        {
            var __图片 = H图标.获取图标(E常用图标.默认图标_橙色);

            //return __图片;
            return(H合成图片.添加左侧柱状图(__图片, 5, new List <int> {
                10, 5, 15
            }, new List <Color> {
                Color.Green, Color.Red, Color.Indigo
            }));
        }
Exemplo n.º 7
0
 void do模拟轨迹_Click(object sender, EventArgs e)
 {
     if (_B轨迹 == null)
     {
         _B轨迹 = new B轨迹();
         const int __线中点最多数量 = 5;
         _B轨迹.位置更新 += (string __号码, M经纬度 __最新位置, List <M经纬度> __轨迹缓存) =>
         {
             if (!_B轨迹.订阅中)
             {
                 return;
             }
             if (_轨迹点缓存.ContainsKey(__号码))
             {
                 _IF地图.除点(_轨迹点缓存[__号码]);
             }
             _轨迹点缓存[__号码] = _IF地图.添加点(__最新位置, H图标.获取图标(E常用图标.默认图标_蓝色), __号码);
             if (_轨迹线缓存.ContainsKey(__号码))
             {
                 _IF地图.除线(_轨迹线缓存[__号码]);
             }
             if (__轨迹缓存.Count >= 2)
             {
                 var __点数量 = Math.Min(__轨迹缓存.Count, __线中点最多数量);
                 _轨迹线缓存[__号码] = _IF地图.添加线(__轨迹缓存.GetRange(__轨迹缓存.Count - __点数量, __点数量), 2, Color.Yellow);
             }
         };
         _B轨迹.取消完毕 += () =>
         {
             _轨迹线缓存.Values.ToList().ForEach(q => _IF地图.除线(q));
             _轨迹点缓存.Values.ToList().ForEach(q => _IF地图.除点(q));
             _轨迹线缓存.Clear();
             _轨迹点缓存.Clear();
         };
     }
     if (_B轨迹.订阅中)
     {
         _B轨迹.取消订阅();
     }
     else
     {
         var __参数窗口 = new F轨迹参数()
         {
             StartPosition = FormStartPosition.CenterParent
         };
         if (__参数窗口.ShowDialog() == DialogResult.OK)
         {
             _B轨迹.订阅(__参数窗口.数量, __参数窗口.频率, _中心位置);
         }
     }
 }
Exemplo n.º 8
0
        private void 显示线路(M线路 __线路, List <M地址> __可能起点, List <M地址> __可能终点, TextBox __输出信息)
        {
            _线路查询索引.ForEach(q => _IF地图.除线(q));
            _线路查询索引.ForEach(q => _IF地图.除点(q));
            __输出信息.Text = "";
            if (__线路 == null)
            {
                __可能起点.ForEach(
                    q => _线路查询索引.Add(_IF地图.添加点(q.坐标, H图标.获取图标(E常用图标.开始), q.称, null, null, E标题显示方式.Always)));
                __可能终点.ForEach(
                    q => _线路查询索引.Add(_IF地图.添加点(q.坐标, H图标.获取图标(E常用图标.停止), q.称, null, null, E标题显示方式.Always)));
                _IF地图.定位(__可能起点.Concat(__可能终点).Select(q => q.坐标).ToList());
                var __说明1 = new StringBuilder();
                __说明1.AppendLine("可能起点:");
                __可能起点.ForEach(q =>
                {
                    __说明1.AppendLine(q.称);
                    if (!string.IsNullOrEmpty(q.详细地址))
                    {
                        __说明1.AppendLine(q.详细地址);
                    }
                    if (!string.IsNullOrEmpty(q.备注))
                    {
                        __说明1.AppendLine(q.备注);
                    }
                    __说明1.AppendLine();
                });
                __输出信息.Text = __说明1.ToString();
                MessageBox.Show("请输入精确的起点/终点");
                return;
            }
            var __说明 = new StringBuilder();

            __线路.步骤说明.ForEach(q => __说明.AppendLine(q));
            __输出信息.Text = string.Format("距离: {0}公里{3}{1}{3}{2}", __线路.距离 * 1.0 / 1000, __线路.备注, __说明, Environment.NewLine);
            _线路查询索引.Add(_IF地图.添加线(__线路.点集合, 2, Color.Blue, __线路.称));
            _线路查询索引.Add(_IF地图.添加点(__线路.点集合[0], H图标.获取图标(E常用图标.开始)));
            _线路查询索引.Add(_IF地图.添加点(__线路.点集合[__线路.点集合.Count - 1], H图标.获取图标(E常用图标.停止)));
            _IF地图.定位(__线路.点集合);
        }
Exemplo n.º 9
0
        private void 添加覆盖物(string __图层名称)
        {
            var __图标1 = H图标.获取图标(E常用图标.默认图标_红色);
            var __图标2 = H图标.获取图标(E常用图标.开始);

            _点索引.Add(_IF地图.添加点(_中心位置.偏移(-0.05, 0), __图标1, "x1", new M示例业务对象 {
                标识 = 1, 类型 = "基站", 称 = "基站1", 状态 = "正常"
            }, __图层名称, E标题显示方式.Always, true));
            _点索引.Add(_IF地图.添加点(_中心位置.偏移(0.05, 0), __图标2, "y1", new M示例业务对象 {
                标识 = 2, 类型 = "车台", 称 = "车台1", 状态 = "正常"
            }, __图层名称));
            Debug.WriteLine("线起点: {0}; \r\n线终点: {1}", _中心位置.偏移(-0.05, 0), _中心位置.偏移(0.05, 0));
            Debug.WriteLine("线起点: {0}; \r\n线终点: {1}", _IF地图.纠偏(_中心位置.偏移(-0.05, 0)), _IF地图.纠偏(_中心位置.偏移(0.05, 0)));
            _线索引.Add(_IF地图.添加线(new List <M经纬度>
            {
                _中心位置.偏移(-0.05, 0),
                _中心位置.偏移(0.05, 0)
            }, 2, Color.Red, new M示例业务对象 {
                标识 = 2, 类型 = "连接状态", 称 = "基站1-车台1", 状态 = "正常"
            }, __图层名称));
            _圆索引.Add(_IF地图.添加圆(_中心位置.偏移(-0.02, -0.02), 1000, new M区域绘制参数 {
                边框宽度 = 1, 边框颜色 = Color.FromArgb(255, 0, 0, 255), 填充颜色 = Color.FromArgb(55, 135, 206, 235)
            }, new M示例业务对象 {
                标识 = 2, 类型 = "圆", 称 = "圆1", 状态 = "正常"
            }, __图层名称));
            _多边形索引.Add(_IF地图.添加多边形(new List <M经纬度>
            {
                _中心位置.偏移(0.02, 0.02),
                _中心位置.偏移(0.02, 0.03),
                _中心位置.偏移(0.01, 0.04),
                _中心位置.偏移(0.01, 0.03),
                _中心位置.偏移(-0.01, 0.03),
            }, new M区域绘制参数 {
                边框宽度 = 1, 边框颜色 = Color.Blue, 填充颜色 = Color.FromArgb(55, 135, 206, 235)
            }, new M示例业务对象 {
                标识 = 2, 类型 = "区域", 称 = "区域1", 状态 = "正常"
            }, __图层名称));
        }
Exemplo n.º 10
0
        private void 显示线路(List <M线路> __线路列表, List <M地址> __可能起点, List <M地址> __可能终点, TextBox __输出信息)
        {
            _线路查询索引.ForEach(q => _IF地图.除线(q));
            _线路查询索引.ForEach(q => _IF地图.除点(q));
            __输出信息.Text = "";
            if (__线路列表 == null)
            {
                __可能起点.ForEach(
                    q => _线路查询索引.Add(_IF地图.添加点(q.坐标, H图标.获取图标(E常用图标.开始), q.称, null, null, E标题显示方式.Always)));
                __可能终点.ForEach(
                    q => _线路查询索引.Add(_IF地图.添加点(q.坐标, H图标.获取图标(E常用图标.停止), q.称, null, null, E标题显示方式.Always)));
                _IF地图.定位(__可能起点.Concat(__可能终点).Select(q => q.坐标).ToList());
                var __说明1 = new StringBuilder();
                __说明1.AppendLine("可能起点:");
                __可能起点.ForEach(q =>
                {
                    __说明1.AppendLine(q.称);
                    if (!string.IsNullOrEmpty(q.详细地址))
                    {
                        __说明1.AppendLine(q.详细地址);
                    }
                    if (!string.IsNullOrEmpty(q.备注))
                    {
                        __说明1.AppendLine(q.备注);
                    }
                    __说明1.AppendLine();
                });
                __输出信息.Text = __说明1.ToString();
                MessageBox.Show("请输入精确的起点/终点");
                return;
            }
            var __可选颜色   = new Queue <Color>(new Color[] { Color.Red, Color.Blue, Color.Brown, Color.YellowGreen, Color.Coral, Color.Black });
            var __可选颜色描述 = new Queue <string>(new string[] { "红色", "蓝色", "棕色", "绿色", "橙色", "黑色" });

            if (__线路列表.Count > 6) //演示用,只取
            {
                __线路列表 = __线路列表.Take(6).ToList();
            }
            var __说明  = new StringBuilder();
            var __所有点 = new List <M经纬度>();

            __线路列表.ForEach(__线路 =>
            {
                var __颜色   = __可选颜色.Dequeue();
                var __颜色描述 = __可选颜色描述.Dequeue();
                __说明.AppendFormat("====={0}====", __颜色描述).AppendLine().AppendLine(__线路.称).AppendLine();
                __线路.步骤说明.ForEach(q => __说明.AppendLine(q));
                __说明.AppendLine();
                _线路查询索引.Add(_IF地图.添加线(__线路.点集合, 2, __颜色, __线路.称));
                __所有点.AddRange(__线路.点集合);
                for (int i = 0; i < __线路.点集合.Count; i++)
                {
                    if (i == 0)
                    {
                        _线路查询索引.Add(_IF地图.添加点(__线路.点集合[i], H图标.获取图标(E常用图标.开始), __线路.步骤说明[i]));
                    }
                    else if (i == __线路.点集合.Count - 1)
                    {
                        _线路查询索引.Add(_IF地图.添加点(__线路.点集合[i], H图标.获取图标(E常用图标.停止)));
                    }
                    else
                    {
                        _线路查询索引.Add(_IF地图.添加点(__线路.点集合[i], H图标.获取图标(E常用图标.默认图标_绿色_小), __线路.步骤说明[i]));
                    }
                }
            });
            _IF地图.定位(__所有点);
            __输出信息.Text = __说明.ToString();
        }