0

我想按以下方式转换给定的纬度和经度:-

  1. 左下纬度
  2. 左下经度
  3. 右上纬度
  4. 右上角的经度

例如,我有一个纬度:29.0167 和经度:77.3833。现在我如何将这些坐标转换为左下纬度、左下经度、右上纬度和右上经度。

请任何人帮助我。

4

2 回答 2

0

我不确定我是否理解您要做什么,但如果我理解,您可以使用 Math.Floor 和 Math.Ceiling。他们给你的第一个整数更小,提供的数字分别更大。

float lon =77.38;
float lat = 29.01;
float loLat=Math.Floor(lat); //29
float upLat=Math.Ceiling(lat); //30
float loLon=Math.Floor(lat); //77
float upLon=Math.Ceiling(lat); //78

然后,您可以从中计算出您想要的角。

于 2013-03-22T10:06:24.243 回答
0

计算两点之间的距离。如果距离很小(比如 100 公里左右),那么您通常可以使用平面地球近似值。对于更长的距离,您需要使用“大圈”距离。AKA Haversine 公式。您计算的这个距离是正方形的对角线距离。请参阅此站点以获取您需要的所有公式:http ://www.movable-type.co.uk/scripts/latlong.html

计算从左下角到右上角的方位角。同样,请参阅上面的站点以计算两个纬度/经度点之间的方位。

要获得右下角,您知道框边的距离是对角线距离除以 2 的平方根。这是来自直角三角形几何:x^2 + x^2 = 斜边。

从上面计算的方位角,加上 45 度。您现在有了一个范围 (D/sqrt(2)) 和一个指向右下角的方位。使用上面的站点从带有范围和方位的 lat/lon 计算 lat/lon。

通过减去 45 度重复左上角。

于 2013-03-22T11:43:37.417 回答