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 variablesOGC 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 | 流程登记(类型:流程) |
添加新流程
- 创建
processes/my_process.py实施BaseProcessor - 增添
pygeoapi.config.yml在...之下resources:
resources:
my-process:
type: process
processor:
name: ogc_processes.my_process.MyProcessor- 重建:
docker compose up --build
