从中心到给定点的纬度、经度和地理区域(NW、NE、SW、SE)
Posted
技术标签:
【中文标题】从中心到给定点的纬度、经度和地理区域(NW、NE、SW、SE)【英文标题】:Latitude,longitude and geographical quarter (NW, NE, SW, SE) from a center to a given point 【发布时间】:2013-08-11 01:28:43 【问题描述】:考虑到纬度和经度,我一直在寻找一种方法来了解距给定中心的某个点位于哪个季度。
西北东北 ……|…… ..X...|...... ……|…… - - - X - - - ……|…… ……|…… ……|…… 西南证券交易所【问题讨论】:
【参考方案1】:忽略两极和反子午线(经度 = +/- 180),这很简单:
if(lat > centerLat)
if(long < centerLong)
NW
if(long > centerLong
NE
if(lat < centerLat)
if(long < centerLong)
SW
if(long > centerLong
SE
如果您需要它在反子午线附近工作,请将您的整个系统向东平移,方法是将所有经度添加 180 度。
【讨论】:
【参考方案2】:以度为单位计算从中心到点的方位(搜索航空公式主页)。然后如果方位在 [0,90) 范围内:NE, [90,180) -> 东南。其他两个方向相同。 [180,270) -> 西南 [270, 360) -> 西北
您可以通过
简化检查double bearing = bearing(latCenter, lonCenter, lat, lon);
int index = bearing / 90;
String[] quadrants = new String[] "NE", "SE", "SW", NW";
String result = quadrant[index];
【讨论】:
以上是关于从中心到给定点的纬度、经度和地理区域(NW、NE、SW、SE)的主要内容,如果未能解决你的问题,请参考以下文章
给定 GPS 的地理位置,如何在给定的 x 米半径内找到纬度和经度