

# FaShuTool (法术网优工具)

## 简介

FaShuTool 是一款基于 QGIS 的专业无线网络规划工具插件，主要服务于 LTE/5G 网络规划工程师。该插件集成了小区搜索、邻区规划、PCI 规划优化等核心功能，通过图形化界面帮助工程师更高效地完成网络规划工作。

## 功能特性

### 1. 小区图层搜索 (Layer Search)
- 支持快速搜索和定位 QGIS 中的矢量图层
- 可按字段进行属性查询
- 支持图层缩放和几何闪烁高亮
- 实时搜索结果显示

### 2. 邻区规划 (Neighbor Planning)
- 支持从剪贴板批量导入规划小区 CGI 列表
- 自动计算宏站和室内小区的邻区关系
- 支持距离、方位角计算
- 可设置最大邻区数量和最小距离约束
- 支持规划结果导出

### 3. PCI 规划优化 (PCI Planning)
- 基于增强型退火算法的小区 PCI 自动规划
- 支持 LTE 标准 PCI 范围解析
- 考虑同频邻区干扰避免
- 支持批量小区 PCI 优化
- 实时显示优化进度和最佳适应度

### 4. 数据导入与可视化 (Import File)
- 支持导入规划数据模板
- 可视化小区覆盖方向和覆盖范围
- 自动创建扇区多边形和圆形覆盖区
- 支持配置不同频点的显示颜色
- 可将配置数据写入 SQLite 数据库

### 5. 泰森图层绘制 (Voronoi layer)
- TAC插花图层绘制

## 安装方法

### 环境要求
- QGIS 3.x (推荐 QGIS 3.10+)
- Python 3.6+
- 依赖包: PyQt5, PyQt6，scipy, numpy

### 安装步骤
1. 克隆或下载插件源码到本地：
```bash
git clone https://gitee.com/fashuchenmo/fa_shu_tool.git
```

2. 将插件目录复制到 QGIS 插件目录：
   - Linux: `~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/`
   - Windows: `%APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\`
   - macOS: `~/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/`

3. 重启 QGIS，在"插件管理器"中搜索并启用"FaShuTool"

### 编译资源文件（可选）
如需修改 UI 文件或翻译文件，可使用以下脚本：
```bash
# 编译翻译文件
./scripts/compile-strings.sh

# 更新翻译源文件
./scripts/update-strings.sh
```

## 使用说明

### 启动插件
在 QGIS 工具栏或插件菜单中找到 FaShuTool 图标，点击即可启动相应功能模块。

### 小区搜索
1. 点击插件图标选择"小区搜索"
2. 在下拉列表中选择要搜索的图层
3. 选择搜索字段并输入关键词
4. 点击搜索按钮查看结果
5. 双击结果项可缩放至对应要素

### 邻区规划
1. 点击"邻区规划"功能
2. 可通过剪贴板导入 CGI 列表，或选择规划文件
3. 设置宏站和室内小区的搜索参数
4. 点击开始规划执行计算
5. 查看结果表格并可导出规划结果

### PCI 规划
1. 点击"PCI 规划"功能
2. 选择输入数据文件或从数据库读取小区信息
3. 配置 PCI 规划参数
4. 点击运行开始遗传算法优化
5. 查看优化结果并导出

### 数据导入
1. 点击"导入"功能
2. 导入或新建频点配置模板
3. 设置各频点的显示颜色
4. 配置小区绘制参数（方向、宽度、半径）
5. 可将配置保存为 JSON 模板

### 泰森多边形功能
1. 点击"矢量图层选择"选择图层
2. 选择图层的经度字段、纬度字段、数值字段
3. 点击"生成等值融合泰森多边形"按钮即可
5. 生成的图层以临时图层加载

## 项目结构

```
fa_shu_tool/
├── fa_shu_tool.py           # 主插件入口
├── fa_shu_tool_import_file.py    # 数据导入模块
├── fa_shu_tool_layer_search.py   # 小区搜索模块
├── fa_shu_tool_neighbor.py       # 邻区规划模块
├── fa_shu_tool_pci.py            # PCI规划模块
├── fa_shu_tool_Voronoi.py     # 泰森多边形模块
├── fa_shu_tool*.ui              # Qt UI界面文件
├── icon.png                     # 插件图标
├── icon/                        # 功能图标目录
├── pb_tool.cfg                  # 插件配置
└── i18n/                        # 国际化翻译文件
```

## 测试

插件包含完整的单元测试，测试覆盖：
- 对话框测试
- 国际化测试
- QGIS 环境测试

运行测试：
```bash
cd test
python -m pytest
```

## 许可证

本项目遵循 MIT 许可证开源。

## 贡献

欢迎提交 Issue 或 Pull Request 来改进插件功能。

## 联系方式

- 项目地址: https://gitee.com/fashuchenmo/fa_shu_tool
- 作者: fashuchenmo