首页
/ PROJ 9.6.1版本发布:地理坐标转换工具的重要更新

PROJ 9.6.1版本发布:地理坐标转换工具的重要更新

2025-06-26 03:23:34作者:温玫谨Lighthearted

PROJ是一个开源的地理坐标转换库,广泛应用于GIS系统和地理空间数据处理领域。它提供了强大的坐标参考系统(CRS)转换功能,支持数千种不同的地理坐标系统和投影方法。作为许多GIS软件(如QGIS、GDAL等)的核心组件,PROJ的每一次更新都会对整个地理信息行业产生重要影响。

主要更新内容

EPSG数据库升级至12.012版本

本次发布的PROJ 9.6.1版本将内置的EPSG数据库升级到了12.012版。EPSG数据库是国际石油天然气生产者协会维护的全球坐标参考系统标准数据库,包含了各种地理坐标系统、投影方法和转换参数的定义。这一更新意味着PROJ现在支持更多最新的坐标系统定义和转换方法,能够更好地满足全球各地用户的需求。

新增PDB文件支持选项

对于Windows平台的开发者,9.6.1版本新增了生成PDB(程序数据库)文件的选项。PDB文件包含了调试信息,对于使用Visual Studio等开发工具进行调试的用户来说非常重要。这一改进使得Windows平台下的PROJ开发调试体验更加完善。

重要错误修复

南向横轴墨卡托投影处理修正

修复了一个关于南向横轴墨卡托投影(South Orientated TMerc)的问题。某些情况下,这种投影会被错误地识别为常规横轴墨卡托投影但带有Scale_Factor=-1参数。这一修复确保了这类特殊投影能够被正确处理。

坐标转换路径优化

在NAD83(CSRS)不同版本间的转换操作中,优化了转换路径,避免了不必要地通过NAD83中间步骤。NAD83(CSRS)是加拿大使用的国家空间参考系统,这一改进提高了加拿大地区坐标转换的精度和效率。

垂直基准面模型获取改进

修正了getGeoidModels函数中关于垂直基准面单位处理的问题。现在能够更准确地获取使用不同单位的垂直坐标参考系统(VCRS)模型,这对于高精度高程转换非常重要。

资源文件管理增强

改进了FileManager::open_resource_file()函数,现在能够正确处理grid_alternatives中定义的非标准资源URL。这一改进增强了PROJ在不同网络环境下的资源获取能力。

投影参数修正

修复了Wagner VI投影参数中的一个错误,确保了这一特殊投影方法的计算准确性。Wagner VI是一种较少使用但特定场景下非常重要的投影方法。

构建系统改进

CMake构建系统优化

针对不同编译器版本改进了CMake配置,特别是避免在不支持C23 #embed特性的旧编译器上错误检测这一特性。这使得PROJ能够在更广泛的编译环境中顺利构建。

Windows平台构建修复

解决了Windows平台上同时设置EMBED_RESOURCE_FILES和USE_ONLY_EMBEDDED_RESOURCE_FILES选项时的构建问题,提高了跨平台构建的稳定性。

数据库更新

本次更新同步了ESRI数据库至ArcGIS Pro 3.5版本,确保与最新版ArcGIS软件的兼容性。同时修复了辅助数据库中的重复条目问题,提高了数据库查询的准确性和效率。

开发者相关改进

代码质量提升

将代码中的裸isnan()调用统一改为std::isnan(),遵循了现代C++的最佳实践。同时增加了必要的头文件包含,如limits和algorithm,提高了代码的可移植性。

跨平台兼容性增强

针对NetBSD系统特别使用了std::abs代替abs,确保在不同平台上的数学计算一致性。这些看似微小的改进实际上对保证PROJ在各种Unix-like系统上的稳定运行至关重要。

PROJ 9.6.1版本虽然是一个小版本更新,但包含了多项重要的功能改进和错误修复,特别是对专业用户关心的坐标转换精度和特殊投影处理进行了优化。对于依赖高精度地理空间计算的用户来说,升级到这个版本将获得更可靠、更精确的坐标转换结果。

登录后查看全文
热门项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
263
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
871
515
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
131
184
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
346
380
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
334
1.09 K
harmony-utilsharmony-utils
harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
ArkTS
31
0
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.08 K
0
kernelkernel
deepin linux kernel
C
22
5
WxJavaWxJava
微信开发 Java SDK,支持微信支付、开放平台、公众号、视频号、企业微信、小程序等的后端开发,记得关注公众号及时接受版本更新信息,以及加入微信群进行深入讨论
Java
829
22
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
603
58