转换 x、y、缩放为经度和纬度(帮助)

问题描述 投票:0回答:2

我试图从这一点获取坐标,但它只给我 x 和 y 坐标以及缩放数据。尽管我试图弄清楚如何将 x 和 y 转换为纬度和经度。这张地图上出现的数据让我太困惑了。这张地图给了我:

http://gis.nyc.gov/doitt/nycitymap/

高度:(静态值) 宽度:(静态值) 最小X 最大X

分钟Y 最大Y

缩放

这些是这张地图为我提供的 1 个特定建筑物或地点的数据,我不知道如何将其转换为纬度和经度。有人可以帮我解决这个问题吗?

非常感谢您阅读这篇文章。

maps coordinates
2个回答
2
投票

这也许有帮助

public double xCoordinateToLongitude(int x, int z) {
    return x / Math.pow(2.0, z) * 360.0 - 180;
}

public double yCoordinateToLatitude(int y, int z) {
    double n = Math.PI - (2.0 * Math.PI * y) / Math.pow(2.0, z);
    return (Math.toDegrees(Math.atan(Math.sinh(n))) * -1) * 1000000 / 1000000;
}

(* 1000000 / 1000000 ) 用于十进制方法


0
投票

加斯顿的回答几乎是正确的。 他的第二个函数返回上半球的负数。 因此,只需从最后一行中删除

* -1

public double xCoordinateToLongitude(int x, int z) {
    return x / Math.pow(2.0, z) * 360.0 - 180;
}

public double yCoordinateToLatitude(int y, int z) {
    double n = Math.PI - (2.0 * Math.PI * y) / Math.pow(2.0, z);
    return Math.toDegrees(Math.atan(Math.sinh(n))) * 1000000 / 1000000;
}
© www.soinside.com 2019 - 2024. All rights reserved.