Swift - 从 EPSG:4326 到 3857 的坐标变换

Swift - Coordinate Transformation from EPSG:4326 to 3857

我想知道可以用来将 4326 转换为 3857 的 Swift 库或方法。我参考了一些库,例如 Proj4Swift and Proj.4,但无济于事。第一个 link 没有可用的下载,第二个没有文档。有人会建议我可以在 Swift 中实现此目的的库或方法吗?

我也提到了其他类似的问题,但找不到合适的解决方案。

好吧,由于找不到明确直接的答案,我参考following and 在Swift中编写了代码。如下。

func getCoordinatesInEPSG3857(longitudeInEPSG4326: Double, latitudeInEPSG4326: Double) -> (Double, Double) {
    let longitudeInEPSG3857 = (longitudeInEPSG4326 * 20037508.34 / 180)
    let latitudeInEPSG3857 = (log(tan((90 + latitudeInEPSG4326) * Double.pi / 360)) / (Double.pi / 180)) * (20037508.34 / 180)

    return (longitudeInEPSG3857, latitudeInEPSG3857)
}

在这里,您可以传递 EPSG:4326 中的坐标,函数 returns 传递 EPSG:3857 中的坐标。