返回目录
开源项目开发者工具类新手

Greppo:快速构建与部署地理空间 Web 应用的 Python 框架

Greppo 是一个开源 Python 框架,用于快速构建地理空间 Web 应用,提供将数据、算法、可视化与交互式 UI 整合起来的工具包,帮助数据科学家展示其地理空间工作成果。框架基于 Starlette、Vue、Leaflet、ChartJS、TailwindCSS 等开源项目构建,使用 Apache V2 许可证。

0 次阅读2026/09/15 发布
Greppo:快速构建与部署地理空间 Web 应用的 Python 框架 来源图片

社区作者 · zZz

它解决什么问题

Greppo 是一个用于构建地理空间 Web 应用(geospatial web-applications)的开源 Python 框架。它的定位是:让构建应用变得简单,提供一套工具包,可以快速整合数据、算法、可视化和用于交互的 UI,使数据科学家能够方便地展示自己的地理空间相关工作。

官方资源:

  • 文档:docs.greppo.io
  • 网站:https://greppo.io
  • Discord 社区:https://discord.gg/RNJBjgh8gz
  • 遇到问题可通过 Discord、Twitter 反馈,或在 GitHub 上提交 issue。

核心用法(来源给出的示例): 在 app.py 中从 greppo 导入 app,并配合 geopandas 读取地理数据;使用 app.overlay_layer() 添加覆盖图层(可设置 name、description、style、visible),使用 app.base_layer() 添加底图图层(可设置 name、visible、url、subdomains、attribution,示例使用 Open Street Map 瓦片地址)。

运行方式:使用 Greppo 的 CLI 命令 greppo serve app.py 启动应用,然后在浏览器中访问 localhost:8080/ 查看。注意:8080 端口可能因本机运行的其他程序而不同,应以命令行界面中显示的端口为准。

底层实现:Greppo 是开源的,也建立在开源之上。其底层使用 Starlette、Vue、Leaflet、ChartJS、TailwindCSS 等(官方还提供了所用开源项目的详细清单)。项目自述其目标是“回馈地理空间社区”,让地理空间应用开发变得容易。

配图说明:配图 1 为项目 logo,配图 2 为文档相关图形,配图 3 为地球(geospatial)主题图形,配图 4 为聊天/社区主题图形,配图 5 为应用界面截图(可参考其了解生成的应用形态)。

适用对象:需要把地理空间数据与分析结果快速做成可交互 Web 应用的数据科学家、GIS 与地理空间开发者、以及希望低成本搭建内部地理数据展示页面的团队。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

以下步骤依据来源 README 整理:

  1. 准备环境
  • 需要 Python 环境与 pip。
  • 官方建议为本项目使用虚拟环境(virtual environment)来管理依赖包。更多信息与故障排查请查阅官方 Installation Guide。
  1. 安装框架
  • 在已激活的(虚拟)环境中执行:
命令
pip install greppo
  1. 编写应用(示例,文件名为 app.py)

inside app.py

from greppo import app import geopandas as gpd

data_gdf = gpd.read_file("geospatial_data.geojson") buildings_gdf = gpd.read_file("./data/buildings.geojson")

app.overlay_layer( buildings_gdf,

命令
name="Buildings",
命令
description="Buildings in a neighbourhood in Amsterdam",
命令
style={"fillColor": "#F87979"},
命令
visible=True,

)

app.base_layer(

命令
name="Open Street Map",
命令
visible=True,
命令
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
命令
subdomains=None,
命令
attribution='&copy; <a target="_blank" href="http://osm.org/copyright">OpenStreetMap</a> contributors',

) (示例中先读取 geojson 数据,再依次调用 overlay_layer 与 base_layer 添加覆盖图层和底图。)

  1. 首次运行

greppo serve app.py

  • 使用 Greppo 的 CLI 命令启动应用:
  • 在浏览器中访问命令行提示的本地地址查看应用:localhost:8080/
  • 注意:8080 端口可能因为本机运行的其他程序而不同,请以命令行界面中显示的实际端口为准。
  1. 常见问题
  • Windows 用户:安装 Greppo 的依赖之一 Fiona 通常无法在 Windows 上默认安装成功;可行的变通方式是使用(例如 Christoph Gohlke 提供的)wheel 文件手动安装。
  • 遇到其他问题:可在 Discord、Twitter 上联系项目方,或在 GitHub 上提交 issue。

来源教程配图

教程配图
配图 1 · 教程配图查看原图
教程配图
配图 2 · 教程配图查看原图
教程配图
配图 3 · 教程配图查看原图
教程配图
配图 4 · 教程配图查看原图
教程配图
配图 5 · 教程配图查看原图

适用场景

将地理空间数据(如 GeoJSON)快速做成可交互的 Web 地图应用
由数据科学家展示地理空间分析与算法成果
为内部团队搭建地理数据浏览与图层叠加查看页面
在 Open Street Map 等底图上叠加业务图层并进行样式与可见性配置
以 Python 为主栈快速原型化 GIS 应用
避免从零编写前端