MapInfo Distance Calculator 最小站间距统计教程(附 Python 替代方案与样例数据)
标签:
5G网络规划MapInfoGIS无线通信
系列:5G 网规 GIS 工具箱 · 第 1 篇
前言
在 5G 无线网规工作中,最小站间距统计是高频操作:新开站规划要查最近现网站距离,验收前要批量输出站间距写入报告。手工量距慢且易错,Excel 算经纬度距离在万站级容易卡死。本文介绍 MapInfo 内置插件Distance Calculator的完整用法,并附开源 Python 替代方案。
一、为什么需要这个工具?
场景 1:新开站规划
规划同事每周评估数十个候选站址,需知道每个新站距最近现网站多远、300 米内是否已有站点。
场景 2:站间距合规审查
运营商对宏站站间距有明确要求(通常 300–800 米),验收前需批量输出最小站间距。
方法对比
| 方法 | 20 个新站耗时 | 1 万站目的表 | 出错率 |
|---|---|---|---|
| 手工地图量距 | 1–2 小时 | 不可行 | 高 |
| Excel 公式 | 30 分钟 | 易卡死 | 中 |
| MapInfo Distance Calculator | 5 分钟 | 稳定 | 低 |
| Python(本仓库工具) | 1 分钟 | 稳定 | 低 |
二、工具介绍
| 项目 | 说明 |
|---|---|
| 工具名称 | MapInfo Distance Calculator(内置插件) |
| 所属软件 | MapInfo Professional 11+ / MapInfo Pro |
| 功能 | 计算源表每点到目的表最近 N 个点的距离 |
| 输出 | 带距离字段的 TAB 表,可导出 CSV |
适用:最小站间距、最近邻站查找、覆盖重叠分析
不适用:路径距离(需路网工具);超 10 万点实时交互(建议 Python)
三、启用 Distance Calculator
- MapInfo →Tools→Tool Manager
- 勾选Distance Calculator→ OK
- Tools → Distance Calculator → Run Distance Calculator
常见报错 FAQ
| 报错 | 原因 | 解决 |
|---|---|---|
| 找不到 Distance Calculator | 插件未启用 | Tool Manager 中勾选 |
| 计算结果为 0 | 坐标系不一致 | 统一 WGS84 |
| 距离单位不对 | 未选米 | 选择 Meters |
四、实操步骤
4.1 准备样例数据
仓库data/目录提供脱敏样例:
data/new_sites.csv # 新开站 20 条 data/all_sites.csv # 全网站 100 条字段说明:
| 字段 | 说明 |
|---|---|
| site_name | 站点名称(虚构) |
| longitude | 经度(WGS84) |
| latitude | 纬度(WGS84) |
| cell_name | 小区名 |
| azimuth | 方位角 |
4.2 导入 CSV
- File → Open,类型选 CSV
- X = longitude,Y = latitude
- 坐标系:Latitude/Longitude (WGS 84)
- 分别Save Copy As为
.tab
4.3 配置 Distance Calculator
| 参数 | 设置值 | 说明 |
|---|---|---|
| Source Table | new_sites | 源表(新开站) |
| Source Columns | site_name, longitude, latitude | 保留字段 |
| Destination Table | all_sites | 目的表(全网站) |
| Destination Columns | site_name, longitude, latitude | 保留字段 |
| Search Mode | Nearest | 最近邻 |
| Number of Nearest | 1 | 最近 1 站 |
| Distance Unit | Meters | 米 |
| Ignore Zero Distance | 不勾选 | 避免自身匹配时需勾选 |
点击Calculate Distance→Save Results→distance_result.tab
4.4 导出结果
Table → Export导出 CSV。输出字段含源站、最近目的站、距离(米)。
五、进阶技巧
5.1 查找 300 米内最近 3 个站
Number of Nearest = 3,导出后筛选distance_m <= 300。
5.2 大批量站点
1 万目的表 + 300 新开站,MapInfo 约 2–3 分钟。超过 5 万站建议用 Python 工具。
5.3 Python 替代方案(推荐)
无需 MapInfo 授权,命令行一键计算:
cdtools/site_spacing_calculator pipinstall-rrequirements.txt python site_spacing.py--new../../data/new_sites.csv--all../../data/all_sites.csv-oresult.csv输出示例:
source_site,nearest_site,distance_m DEMO-NB-001,DEMO-ALL-042,312.48详见系列第 7 篇及 Gitee 仓库tools/site_spacing_calculator/。
六、踩坑提醒
- 坐标系:WGS84 与 GCJ-02 混用偏差可达数百米
- CSV 编码:建议 UTF-8
- 经纬度顺序:X=经度,Y=纬度
七、资源下载
- 样例数据:关注微信公众号,后台回复「站间距」
- 开源代码:Gitee comm-planning-toolbox(上传后替换为实际链接)
- 系列教程:CSDN 专栏「5G 网规 GIS 工具箱」
本文为「5G 网规 GIS 工具箱」系列第 1 篇。引用请注明出处。
版权声明:本文为原创教程,样例数据为虚构坐标,仅供学习,请勿用于生产环境。