osgeo/projPROJ是一款通用坐标转换软件,用于在不同坐标参考系统(CRS)之间进行坐标转换,涵盖地图投影及大地测量转换功能。本Docker镜像是PROJ的自动化构建版本,主要用于测试和验证场景,提供便捷的隔离环境以运行PROJ工具链及验证坐标转换功能。
proj:大地坐标的地图投影计算cs2cs:不同CRS间的坐标转换geod:大地线(大圆)计算cct:通用坐标转换与变换gie:地理空间完整性检测环境projinfo:大地测量对象及坐标操作查询projsync:同步PROJ基准面及转换支持数据proj-data数据包或通过PROJ CDN动态获取资源文件。通过以下命令启动容器并进入交互式终端,直接运行PROJ工具:
bashdocker run -it --rm osgeo/proj:latest /bin/bash
进入容器后,可直接执行工具命令(如proj --version查看版本)。
无需进入终端,直接在宿主机器执行PROJ工具命令:
bash# 示例:使用cs2cs进行坐标转换(WGS84到UTM 32N) docker run --rm osgeo/proj:latest cs2cs +proj=latlong +datum=WGS84 +to +proj=utm +zone=32 +datum=WGS84
输入坐标(如55.75 12.58),将返回转换结果。
PROJ依赖基准面转换网格文件及参数文件,支持两种获取方式:
将proj-data包(需预先下载,版本与PROJ匹配)挂载至容器内PROJ_LIB目录:
bash# 假设宿主机器proj-data路径为/path/to/proj-data docker run -it --rm \ -v /path/to/proj-data:/usr/local/share/proj \ osgeo/proj:latest /bin/bash
容器内PROJ_LIB默认路径为/usr/local/share/proj,挂载后PROJ将优先使用本地数据文件。
网络启用的PROJ构建会自动从PROJ CDN拉取缺失的资源文件,无需本地部署数据包。容器需具备网络访问权限(默认允许)。
| 环境变量 | 说明 | 默认值 |
|---|---|---|
PROJ_LIB | PROJ资源文件(网格、参数文件)存放路径 | /usr/local/share/proj(类Unix系统) |
PROJ_NETWORK | 是否启用网络资源获取(ON/OFF) | ON(默认启用) |
通过docker-compose.yml定义包含数据卷挂载的服务:
yamlversion: '3' services: proj: image: osgeo/proj:latest volumes: - ./proj-data:/usr/local/share/proj # 挂载本地proj-data目录 environment: - PROJ_NETWORK=ON # 启用网络资源获取(可选,默认启用) command: cs2cs +proj=latlong +datum=WGS84 +to +proj=utm +zone=32 +datum=WGS84
启动服务:
bashdocker-compose up
proj-data包版本需与PROJ主程序版本匹配(如PROJ 9.x对应proj-data 1.1.x),否则可能导致数据文件不兼容。PROJ_NETWORK=OFF)且未挂载本地数据时,涉及基准面转换的功能可能失效。projsync工具同步数据文件(需在容器内执行):
bashprojsync --all # 同步所有可用资源文件至PROJ_LIB
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务