在不同边界的投影之间转换坐标
Convert coordinate between projections of different bounds
我有一些标记是在 EPSG4326 地图上的遗留系统中绘制的,范围为 -180 到 180 纬度和 -180 到 180 经度。我现在正试图将这些绘制到具有 -90 到 90 纬度和 -180 到 180 经度范围的 EPSG4326 地图上。如何将原始坐标转换为新坐标系,使其出现在新地图上的同一位置?我正在尝试使用 Leaflet 映射库在 JavaScript 应用程序中解决这个问题。任何指示或见解将不胜感激。
例如,伦敦在源地图上的位置表示 -180 到 180 范围内的纬度大约为(纬度:61.8750,经度:0.1278),而在纬度为 -90 到 90 的目标地图上它会大约(纬度:51.5074,经度:0.1278)。
我想通了!
newlat = (180.0/Math.PI*(2.0*Math.atan(Math.exp(oldlat*Math.PI/180.0))-Math.PI/2.0))
因此如果oldlat = 61.8750
,newlat = 52.482780222078226
这就是我所需要的并且完美地解决了我的问题,将不同范围的纬度转换为新的范围。
反向(如果需要重新转换)公式为:
oldlat = ((180.0/Math.PI)*Math.log(Math.tan((90.0+newlat)*Math.PI/360.0)))
我有一些标记是在 EPSG4326 地图上的遗留系统中绘制的,范围为 -180 到 180 纬度和 -180 到 180 经度。我现在正试图将这些绘制到具有 -90 到 90 纬度和 -180 到 180 经度范围的 EPSG4326 地图上。如何将原始坐标转换为新坐标系,使其出现在新地图上的同一位置?我正在尝试使用 Leaflet 映射库在 JavaScript 应用程序中解决这个问题。任何指示或见解将不胜感激。
例如,伦敦在源地图上的位置表示 -180 到 180 范围内的纬度大约为(纬度:61.8750,经度:0.1278),而在纬度为 -90 到 90 的目标地图上它会大约(纬度:51.5074,经度:0.1278)。
我想通了!
newlat = (180.0/Math.PI*(2.0*Math.atan(Math.exp(oldlat*Math.PI/180.0))-Math.PI/2.0))
因此如果oldlat = 61.8750
,newlat = 52.482780222078226
这就是我所需要的并且完美地解决了我的问题,将不同范围的纬度转换为新的范围。
反向(如果需要重新转换)公式为:
oldlat = ((180.0/Math.PI)*Math.log(Math.tan((90.0+newlat)*Math.PI/360.0)))