Map Grabber

🗺️ OpenStreetMap 矢量数据一键抓取导出

一键抓取 OpenStreetMap 街道与建筑矢量数据,支持 SVG、GeoPackage、DXF 多格式导出,直接对接 CAD/Rhino 工作流。

收藏
6.6k
安装
1.6k
版本
1.1.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Map Grabber 是一款面向建筑、城市规划与 GIS 领域的 OpenStreetMap 数据抓取工具。用户仅需提供地址或地名,即可自动下载指定半径范围内的街道网络及可选建筑轮廓,并导出为 SVG(可视化)、GeoPackage(GIS 标准格式)或 DXF(CAD/Rhino 兼容)三种格式。工具基于 osmnx 库构建,依赖 geopandasnetworkx 进行空间数据处理,DXF 导出需额外安装 ezdxf

典型工作流

1. 快速预览--png 生成地图图片,适合 Telegram 等即时通讯场景直接展示
2. GIS 分析--gpkg 输出 GeoPackage,保留完整空间属性,兼容 QGIS、ArcGIS

3. CAD 建模--dxf 生成 Rhino/AutoCAD 可直接导入的矢量文件,--buildings 追加建筑底面

4. 设计出图--svg 获取可编辑的矢量插图,用于 Adobe Illustrator 后期美化

显著优点

  • 零门槛地址解析:内置 OSM Nominatim 地理编码,支持模糊地址输入如 "SoHo, New York"
  • 多格式闭环:从快速预览到深度建模,覆盖设计全流程,避免格式转换的繁琐操作
  • 开源生态:基于成熟 Python 库(osmnx ≥ 1.0),社区活跃,数据更新及时
  • 轻量部署:纯 Python 实现,无重型 GIS 软件依赖,适合云端或本地轻量环境

潜在缺点与局限性

  • 数据质量波动:OSM 为众包数据,部分地区街道或建筑覆盖不完整,精度参差不齐
  • Python 依赖管理:需手动执行 pip install -r requirements.txt,osmnx 及其依赖(GEOS、PROJ)在部分系统上编译复杂
  • 网络限制:访问 OSM API 需稳定国际网络,大规模或高频抓取可能触发速率限制
  • DXF 功能受限:依赖 ezdxf 的有限实现,复杂图层样式或块定义可能丢失

适合人群

  • 建筑师/城市设计师:快速获取场地底图,用于 Rhino/SketchUp 初期建模
  • GIS 分析师:需要标准化 GeoPackage 进行进一步空间统计与可视化
  • 教学研究者:获取开放数据用于城市规划、交通网络分析等学术场景
  • 远程协作团队:通过 Telegram 快速共享场地概况,缩短沟通链路

常规风险

  • 代码执行权限shell:exec 权限意味着脚本可执行任意系统命令,若 skill 代码被篡改,存在命令注入风险
  • 依赖供应链:osmnx 及 geopandas 依赖大量 C 扩展(shapely、pyproj、GDAL),二进制分发来源需可信
  • 数据合规:OSM 数据遵循 ODbL 开放数据库许可,商用项目需遵守署名与共享条款
  • 路径遍历:输出路径由用户参数控制,若未校验可能写入敏感系统目录(尽管当前版本仅用于临时文件)

Map Grabber 内容

scripts文件夹
手动下载zip · 3.9 kB
grab_map.pytext/plain
请选择文件