从中心到给定点的纬度、经度和地理区域(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 米半径内找到纬度和经度

iOS:提醒用户特定地理位置区域(纬度,经度)

如何使用 cartopy 将显示坐标转换为地理坐标(纬度、经度)?

检索给定区域 x 距离内的所有经纬度点

数据库 redis 命令大全

java:将KM添加到给定的纬度和经度