地理处理API服务

基于OGC API – Processes标准的地理数据处理后端服务,支持同步/异步执行几何计算等地理处理任务。

  • by dask-58
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dask-58/ogc-mcp

使用说明

OGC API-流程后端

[!注意] 在这里阅读完整的博客文章: 建立OGC API

实现 OGC API-流程 标准,由 pygeoapi.


网站地图

ogc-mcp/
├── Dockerfile              # Extends geopython/pygeoapi:latest
├── docker-compose.yml      # One-command deployment
├── pygeoapi.config.yml     # pygeoapi YAML configuration
├── processes/              # Custom process plugins
│   ├── __init__.py
│   └── buffer_process.py   # Geometry Buffer processor
├── validate.sh             # End-to-end validation script
└── .env                    # Environment variables

OGC API-流程终点

端点 方法 描述
/ GET 登录页面
/conformance GET 一致性类
/processes GET 列出可用进程
/processes/{id} GET 描述一个特定的过程
/processes/{id}/execution POST 执行进程(同步/异步)
/jobs GET 列出所有作业
/jobs/{jobId} GET 获取作业状态
/jobs/{jobId}/results GET 检索作业结果
/jobs/{jobId} DELETE 取消/删除作业
/openapi GET OpenAPI 3.0文档

快速开始

先决条件

  • Docker&Docker编写

1.构建和运行

docker compose up --build

服务开始于 http://localhost:5001.

2.验证

zsh ./validate.sh

这贯穿了整个OGC API流程生命周期:

  • 登录页面、合规性、流程列表
  • 同步执行 hello-world 和 geometry-buffer
  • 异步执行+作业轮询+结果检索
  • 作业端点

3.停止

docker compose down

已注册流程

hello world(内置)

回显姓名和可选消息。

curl -X POST http://localhost:5001/processes/hello-world/execution \
  -H "Content-Type: application/json" \
  -d '{"inputs":{"name":"World","message":"Hello!"}}'

几何缓冲区(自定义)

使用以下命令计算任何GeoJSON几何体周围的缓冲区 优美的.

输入:

参数 类型 必填 说明
geometry object yes GeoJSON几何体(点、线、多边形…)
distance number yes 缓冲区距离(CRS单位)
resolution 整数 否 四分之一圆段(默认值:16)

示例--缓冲一个点:

curl -X POST http://localhost:5001/processes/geometry-buffer/execution \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": {
      "geometry": {"type":"Point","coordinates":[0.0,0.0]},
      "distance": 1.0,
      "resolution": 16
    }
  }'

示例--缓冲多边形(异步):

curl -i -X POST http://localhost:5001/processes/geometry-buffer/execution \
  -H "Content-Type: application/json" \
  -H "Prefer: respond-async" \
  -d '{
    "inputs": {
      "geometry": {"type":"Polygon","coordinates":[[[0,0],[1,0],[1,1],[0,1],[0,0]]]},
      "distance": 0.25
    }
  }'
# Returns Location header → poll GET /jobs/{jobId} → GET /jobs/{jobId}/results

配置

所有配置都存在 pygeoapi.config.yml.关键部分:

第节 目的
server.bind 主机/端口绑定
server.url 公共基URL(环境可重写)
server.manager 作业经理
server.cors 默认情况下启用CORS
metadata 服务标识和联系方式
resources 流程登记(类型:流程)

添加新流程

  1. 创建 processes/my_process.py 实施 BaseProcessor
  2. 增添 pygeoapi.config.yml 在...之下 resources:
resources:
  my-process:
    type: process
    processor:
      name: ogc_processes.my_process.MyProcessor
  1. 重建: docker compose up --build