城市区域分割是城市区域分析、轨迹数据挖掘、交通预测等时空应用的核心前提,为测绘地理信息领域提供了精准化、语义化的技术支撑。例如,在基础测绘数据动态更新中,合理的区域分割能够匹配城市功能区变化,精准关联社区、商圈等实际功能单元,减少人工判读误差,提升数据更新效率与准确性。在专题地图制作中,如城市交通规划专题图,分割后的区域因保留路网与功能区语义关联,可精准标注公交枢纽覆盖的居住区范围,相比栅格法生成的模糊区域,能为空间规划部门提供更清晰的空间参考,助力交通线路优化决策。
现有方法具体可分为三类,存在显著的缺陷。
-
传统网格法:研究者常将城市地图划分为等大矩形网格,虽实现简单,但完全忽略城市原始结构的语义信息(如功能区边界、路网关联),无法满足实际应用对 “有意义区域” 的需求。
-
路网作为骨架驱动的栅格模型:通过膨胀、细化等形态学技术简化路网,再以连通分量标记生成区域。但该模型精度依赖路网离散化后的图像质量,且输入输出均为图像格式,难以支持拓扑分析、最短路径计算等需数学化地理空间对象的任务。
-
路网驱动的矢量模型:通过合并阈值内节点、递归应用 Dijkstra 算法实现分割,虽解决了栅格模型的拓扑问题,但存在两大关键缺陷:一是边界识别逻辑未公开,二是算法复杂度随路网节点数量呈超线性增长,无法应对复杂城市的全量路网分割需求;且截至研究时,尚无基于矢量的开源路网分割系统。
为解决上述问题,我们进行了深入的调研、分析与算法迭代,提出了GENREGION系统——首个基于矢量、支持全层级路网、可扩展且开源的城市区域分割系统,已通过 Python Package Index(PyPI)发布,源代码托管于github.com/PaddlePaddl…。该系统以 “路网即图” 为核心逻辑(路段为边、端点为顶点),分三大核心模块实现端到端分割:
PART1 基于聚类的路段简化
针对路网中冗余细节(如互通道路导致的冗余块、弯曲道路 / 环形道路带来的计算压力),通过层次聚类减少节点与路段数量,核心创新点在于距离度量与聚类代表点设计:
-
传统矢量方法用欧氏距离聚类节点,会因弯曲道路节点更密集导致聚类中心偏向曲线;GENREGION 改用 “最小边界矩形(MBR)” 定义聚类:记录每个聚类节点的最大 / 最小 x、y 坐标,以 MBR 中心作为代表点,彻底消除节点密度对聚类的偏差。
-
聚类距离 metric 重新定义:若聚类 MBR 超出阈值则距离为无穷大,否则按 MBR 坐标关系计算距离;同时引入网格索引优化效率 —— 仅检索目标聚类所在及相邻网格的候选聚类,避免全量比对,最终通过 “合并距离小于阈值的聚类” 完成路网简化。
PART2 闭合多边形生成
以简化后的路网为输入,通过 “拆分 - 矢量化 - 递归寻边” 生成区域边界,关键步骤包括:
-
先通过网格索引按交叉口拆分路段,确保每个路段仅在两个端点与其他路段连接,避免交叉点导致的拓扑混乱;
-
将每个路段转化为两个反向矢量(供相邻区域分别使用),定义 “invec/outvec”(指向 / 背离节点的矢量)与 “左向性(leftness)”:左向性通过三角函数计算,值最小的 outvec 即为 “最左外矢量”,且明确 “与当前矢量同向的 outvec 在左侧” 的规则;
-
递归执行 “找最左外矢量”:从未使用的矢量出发,依次寻找其最左外矢量,直至某矢量的终点与初始矢量的起点重合,形成闭合回路(即区域边界),且每个矢量仅使用一次,确保高效生成无重复的多边形。
PART3 多边形优化
生成初始多边形后,移除两类无效区域并优化结果:
-
子多边形:通过网格索引对比同区域 / 相邻区域多边形的 MBR,直接删除包含于大多边形的子区域,消除冗余;
-
微小 / 细长多边形:微小多边形指面积过小、无法表征独立功能区的区域;细长多边形多为高速公路(长而窄),通过 “面积阈值” 与 “宽度阈值(面积 / 周长比)” 识别,将其合并至共享最长边的相邻区域;
-
****最终输出标准化:****Python Shapely 多边形列表,便于后续地理空间分析。
PART1 语义有效性实验
-
基准数据:采用百度地图中国 5 座城市(北京 - 东北、上海 - 东、深圳 - 东南、武汉 - 中部、成都 - 西南)的兴趣区域(ROI),包含医院、商场、学校等功能区的边界坐标,以 “Jaccard 相似度(交集 / 并集)” 衡量分割区域与 ROI 的匹配度(值越高语义越优);
-
对比模型:栅格法(100m/500m/1000m 网格)、 mapseg(栅格路网法)、shortpath(传统矢量法);
-
结果:GENREGION 在所有城市均表现最优(北京 41.0%、上海 42.7%、深圳 41.1%、武汉 32.8%、成都 38.4%),显著高于 shortpath(平均 31.8%-40.1%)、mapseg(平均 30.9%-39.1%),更远超栅格法(Grid-100 平均 0.3%-0.8%);且作者指出,考虑 ROI 不含道路区域,40% 左右的 Jaccard 相似度已属较高水平。
PART2 计算性能实验
-
实验变量:以路网节点数量(或路段数量)表征路网复杂度,对比 GENREGION 与 shortpath 的运行时间;
-
结果:如图 所示,GENREGION 运行时间随节点数量增长呈平缓上升趋势,而 shortpath 增长陡峭;证明 GENREGION 在复杂路网(节点多、路段密)中具备 “超线性复杂度” 的突破,可扩展性显著优于传统矢量方法。
PART3 示例演示(以北京市路网为例)
作者以Figshare.com公开的北京路网数据为示例,展示 GENREGION 的完整操作流程,增强系统实用性:
-
Step 1:数据预处理调用 “preprocess” 函数,输入数据集路径,将原始数据聚合为 110,384 条原始路段;为便于演示,选取 4,297 条路段作为子集;
-
Step 2:聚类简化调用 “simplification_by_clustering” 函数,输入原始路段与聚类宽度,将子集 3,261 个节点降至 907 个,路段从 4,297 条降至 1,608 条(不同颜色节点代表不同聚类,以 MBR 中心为代表点);
-
Step 3:闭合多边形生成调用 “generating_closed_polygon” 函数,拆分路段后递归找最左外矢量,生成 858 个初始多边形;
-
Step 4:多边形优化调用 “polygon_refinement” 函数,输入面积与宽度阈值,删除子多边形、合并微小 / 细长多边形,最终子集得到 498 个有效多边形,全量北京路网得到 12,813 个多边形;
****在技术层面,****GENREGION 系统在聚类简化阶段引入新距离度量(MBR-based),减少节点密度偏差,提升生成区域的语义匹配度;通过递归寻找最左外矢量优化路网分割的复杂度,在路网规模增大后依然保持高性能,体现出优秀的可扩展性。
****在生态方面,****我们同步发布了首个基于路网的开源区域分割系统,提供 PyPI 库与 GitHub 源码,并通过真实数据集演示实用性,为后续研究提供了工具支撑。
****10余年来,****百度地图城市地理大数据,在社会治理、规划决策与民生服务等领域持续赋能社会进步。依托“慧眼”地理大数据平台领先的空间分析能力和千亿次 / 日的位置服务数据,精准刻画真实世界,已成为城市发展的数字智囊,让规划从经验判断转向了数据实证,实现了范式的跃迁。在交通治理场景,融合公共交通数据与用户轨迹,实现拥堵实时疏导与事故快速响应,云端调度模式降低了交警现场执法压力。在公共服务层面,以大数据降低人口调查成本、提升数据时效性,同时为零售选址、文旅优化等场景提供决策依据,推动社会资源高效配置。
****未来,****随着以GENREGION为代表的新一代空间分析算法在更多城市的适配与优化,百度地图有望进一步整合实时交通流、用户轨迹等动态数据,实现向动态功能区感知的升级,为交通调度、公共服务布局、城市更新规划等场景提供更精准的决策支持;同时,开源生态的构建也将吸引更多研究者参与技术迭代,推动城市空间分析技术的标准化与普及化,让慧眼加持的百度地图真正赋能民生服务与城市治理,助力打造更高效、更宜居的智慧化城市环境。