从EPSG:4326到3857的快速坐标转换

问题描述 投票:1回答:1

我想知道一个可用于将4326转换为3857的Swift库或方法。我引用了一些库,例如Proj4SwiftProj.4,但无济于事。第一个链接没有可行的下载,第二个链接没有文档。有人会建议我可以在Swift中使用的库或方法吗?

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

swift gps gis proj epsg
1个回答
0
投票

嗯,由于找不到清晰直接的答案,因此我通过引用followingthis在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中的坐标,并且该函数返回EPSG:3857中的坐标。

© www.soinside.com 2019 - 2024. All rights reserved.