如何从给定的纬度和经度中找到左下和右上纬度和经度?

时间:2013-03-22 08:52:17

标签: c# google-maps google-maps-api-3 map latitude-longitude

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

  1. 左下纬度
  2. 左下经度
  3. 右上纬度
  4. 右上方经度
  5. 例如,我有一个纬度:29.0167和经度:77.3833。现在我如何将这些坐标转换为左下纬度,左下经度,右上纬度和右上经度。

    请任何人帮助我。

2 个答案:

答案 0 :(得分: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

然后,您可以根据此计算所需的角落。

答案 1 :(得分:0)

计算两点之间的距离。如果距离很小(比如大约100公里),那么通常可以使用平坦的地球近似。对于更长的距离,您需要使用“大圆”距离。 AKA Haversine配方。您计算的距离是方形的对角线距离。有关您需要的所有公式,请访问此网站:http://www.movable-type.co.uk/scripts/latlong.html

从左下角到右上角计算轴承。再次,请参阅上面的站点以计算两个纬度/经度点之间的轴承。

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

从上面计算的方位,加45度。你现在有一个范围(D / sqrt(2))和一个到右下角的方位。使用上面的站点计算具有范围和方位的纬度/经度的纬度/经度。

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

相关问题