Swift 实现 BD-09、GCJ-02 和 WGS84 坐标互转

开发地图应用时,坐标转换是家常便饭。在中国,常用的坐标系有三种:百度地图的 BD-09、国家测绘局的 GCJ-02 和国际标准 WGS84。为了方便开发者,Swift 工具类 BLMapCoordinatesChangeHelper 提供了 BD-09、GCJ-02 和 WGS84 之间的互转功能。

为什么需要坐标转换?因为不同的地图服务商使用不同的坐标系,直接使用会导致位置偏差。例如,百度地图API 使用的是 BD-09 坐标系,而高德地图和谷歌地图使用的是 GCJ-02 坐标系。

BLMapCoordinatesChangeHelper 类包含了各种坐标转换方法,例如:

  • BD-09 转 GCJ-02:用于将百度地图坐标转换为高德或谷歌地图坐标。
  • GCJ-02 转 BD-09:用于将高德或谷歌地图坐标转换为百度地图坐标。
  • GCJ-02 转 WGS84:用于将国内坐标转换为国际标准坐标,例如使用 OpenStreetMap 或进行精确的全球定位时。
  • WGS84 转 GCJ-02:用于将国际标准坐标转换为国内坐标。
  • WGS84 转 BD-09:用于将国际标准坐标转换为百度地图坐标。

这些转换方法基于复杂的数学算法,包括双线性映射和偏移等步骤。

zip 文件大小:38.63MB