void 处理矩形圈选(M经纬度 __左上角, M经纬度 __右下角) { if (_圈选测试数据.Count == 0) { return; } var __圈选数量 = 0; var __矩形点集 = new List <M经纬度> { __左上角, __左上角.偏移(__右下角.经度 - __左上角.经度, 0), __右下角, __右下角.偏移(__左上角.经度 - __右下角.经度, 0), }; _圈选测试数据.ForEach(q => { if (H地图算法.判断点在矩形内(_IF地图.纠偏(q), __矩形点集)) { __圈选数量++; } }); MessageBox.Show("圈选数量: " + __圈选数量); //_IF地图.添加矩形(__左上角, __右下角, new M区域绘制参数 { 边框宽度 = 1, 边框颜色 = Color.Red }); }
void _IV_矩形圈选结束(M经纬度 __左上角, M经纬度 __右下角) { var __匹配号码集 = new List <string>(); var __矩形点集 = new List <M经纬度> { __左上角, __左上角.偏移(__右下角.经度 - __左上角.经度, 0), __右下角, __右下角.偏移(__左上角.经度 - __右下角.经度, 0), }; m_lock.EnterReadLock(); foreach (var kv in _当前显示号码集) { var __号码 = kv.Key; var __位置 = kv.Value.位置; if (__位置 != null) { if (H地图算法.判断点在矩形内(_IF地图.纠偏(__位置), __矩形点集)) { __匹配号码集.Add(__号码); } } } m_lock.ExitReadLock(); if (__匹配号码集.Count > 0) { _IV.触发圈选结束(__匹配号码集); } }
void 处理矩形圈选(M经纬度 __左上角, M经纬度 __右下角) { if (_圈选数据.Count == 0) { return; } var __圈选数量 = 0; var __矩形点集 = new List <M经纬度> { __左上角, __左上角.偏移(__右下角.经度 - __左上角.经度, 0), __右下角, __右下角.偏移(__左上角.经度 - __右下角.经度, 0), }; _圈选数据.ForEach(q => { if (H地图算法.判断点在矩形内(q, __矩形点集)) { __圈选数量++; } }); new F对话框_确定("圈选数量: " + __圈选数量, "操作成功").ShowDialog(); }