我希望能够全面地理解方位角的概念,但是我遇到了一些不一致的情况(或者可能是我的错误)。
我会展示一些不匹配的例子,希望有人能够解释这个真正的工作原理。
我会展示在EPSG:900913、PostGIS和使用自己的JavaScript函数中的坐标。
我的函数
/* Difference between the two longitudes */
var dLon = lon2 - lon1;
/* Y value */
var y = Math.sin(dLon) * Math.cos(lat2);
/* X value */
var x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(dLon);
/* Calculates the azimuth between the two points and converts it to degrees */
var angle = Math.atan2(y, x) / Math.PI * 180;
例子
/* Same Y, not on the equator */
Point A: (-81328.998084106, 7474929.8690234)
Point B: (4125765.0381464, 7474929.8690234)
Result in PostGIS: 90 degrees
Result in my JS function: 74.232 degrees
/* Same Y, on the equator */
Point A: (-81328.998084106, 0)
Point B: (4125765.0381464, 0)
Result in PostGIS: 90 degrees
Result in my JS function: 90 degrees
我理解,在赤道上,水平线的方位角为90度(或270度)。我认为,如果你在赤道稍微向北(或南)画一条水平线,那么方位角就不再是90度了。但是...PostGIS告诉我,当Y相同时,它始终是90度。
此外,这个计算器也显示,当Y!=0(不在赤道上)时,水平线的方位角不是90度。
这是如何正确的呢?
谢谢。