考虑到纬度和经度,我一直在寻找一种方法来了解哪个季度位于特定中心的一个点。
NW NE ......|...... ..X...|...... ......|...... ------x------ ......|...... ......|...... ......|...... SW SE
答案 0 :(得分:0)
从中心到点的度数计算轴承(搜索航空公式主页)。然后如果轴承在[0,90]范围内:NE,
[90,180] - > SE。两个方向都一样。
[180,270] - > SW
[270,360] - > NW
您可以通过
简单地进行检查double bearing = bearing(latCenter, lonCenter, lat, lon);
int index = bearing / 90;
String[] quadrants = new String[] {"NE", "SE", "SW", NW"};
String result = quadrant[index];
答案 1 :(得分:0)
忽略极点和反经度(经度= +/- 180),这很简单:
if(lat > centerLat)
if(long < centerLong)
NW
if(long > centerLong
NE
if(lat < centerLat)
if(long < centerLong)
SW
if(long > centerLong
SE
如果你需要它在antimeridian附近工作,可以通过向所有经度增加180度将整个系统向东移动。