PROJ 9.6.0版本发布:地理空间坐标转换工具的重大更新
项目简介
PROJ是一个功能强大的开源地理空间坐标转换库,广泛应用于GIS(地理信息系统)领域。它提供了坐标转换、地图投影转换以及基准面转换等功能,是许多GIS软件(如QGIS、GDAL等)的核心组件之一。PROJ支持数千种坐标参考系统(CRS)和投影方法,能够处理复杂的地理空间数据转换需求。
PROJ 9.6.0版本核心更新
1. 性能优化与效率提升
新版本在多方面进行了性能优化,显著提升了处理效率:
-
坐标转换加速:
proj_factors()函数在重复调用相同复合或投影CRS时速度得到显著提升,这对于需要频繁进行相同类型坐标转换的应用场景尤为重要。 -
数据库查询优化:
createOperations()函数避免了对使用未知基准的CRS(通常是PROJ字符串)进行不必要的数据库查找,减少了冗余操作。 -
内存缓存管理:
proj_download_file()函数现在会在下载文件后使相关内存缓存失效,确保当前上下文中的数据一致性。
2. 新增投影方法支持
9.6.0版本引入了多种新的地图投影方法:
-
Airocean投影(原Dymaxion投影):这是一种创新的投影方法,能够将地球表面展开为一个近似等面积的二十面体,特别适合全球可视化。
-
Spilhaus投影:专为海洋制图设计的投影方法,能够突出显示全球海洋系统的连通性。
-
新增对ESRI:54099(
WGS_1984_Spilhaus_Ocean_Map_in_Square)投影的PROJ字符串导出支持。
3. 坐标参考系统(CRS)处理增强
-
复合CRS支持:
proj_trans_bounds()函数现在能够正确处理目标CRS为复合CRS的情况,扩展了其应用范围。 -
工程CRS支持:数据库新增了
engineering_datum和engineering_crs表,并导入了相关EPSG记录,增强了对工程坐标系统的支持。 -
垂直转换改进:新增对"Vertical Offset by Grid Interpolation (asc)"方法的支持,映射到
+proj=vgridshift。
4. 数据库与转换方法更新
-
EPSG数据库升级:更新至EPSG v12.004版本,包含最新的坐标参考系统定义。
-
转换方法扩展:新增对"Coordinate Frame rotation full matrix (geocen)"和"Coordinate Frame rotation full matrix (geog2D)"方法的支持。
-
网格转换增强:支持新的EPSG方法"Cartesian Grid Offsets by TIN Interpolation (JSON)"和"Vertical Offset by TIN Interpolation (JSON)"。
5. 构建与部署改进
-
C++17标准:项目构建系统升级至C++17版本,利用了现代C++的特性优势。
-
资源文件嵌入:新增CMake选项
EMBED_RESOURCE_FILES和USE_ONLY_EMBEDDED_RESOURCE_FILES,允许将proj.db和proj.ini等资源文件直接嵌入到库中,简化部署。 -
TIF/JSON资源嵌入:通过
EMBED_RESOURCE_DIRECTORY选项,可以将.tif/.json文件嵌入到libproj中,提高便携性。
重要问题修复
-
坐标转换稳定性:修复了
+proj=cass投影在输入坐标等于假东移或假北移值时可能出现的非收敛问题。 -
内存管理:修复了
proj_clone()函数未能正确传播errorIfBestTransformationNotAvailable等标志的问题。 -
SSL连接:增加了对"SSL connection timeout"的重试机制,提高了网络操作的可靠性。
-
ITRF转换:修正了ITRF97到ITRF2014转换文件中的参数错误。
开发者工具增强
-
projinfo改进:现在可以显示操作是否具有时间依赖性,帮助开发者更好地理解转换特性。
-
bash自动补全:为projinfo工具添加了bash补全脚本,提升命令行使用体验。
-
调试支持:在多网格TIFF文件打开时,将子网格索引附加到网格名称中,便于调试和分析。
总结
PROJ 9.6.0版本在性能、功能和稳定性方面都有显著提升,特别是新增的投影方法和增强的CRS处理能力,使其在地理空间数据处理领域继续保持领先地位。对于GIS开发者和数据分析师来说,升级到这个版本将获得更高效、更可靠的坐标转换体验。无论是处理传统的地图投影需求,还是应对新兴的地理空间数据处理挑战,PROJ 9.6.0都提供了强有力的支持。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust098- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00