`
shirlly
  • 浏览: 1647883 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

【转】asp.net(c#)通过两个点的经纬度计算距离

    博客分类:
  • .NET
 
阅读更多
原理:

地球赤道上环绕地球一周走一圈共40075.04公里,而@一圈分成360°,而每1°(度)有60,每一度一秒在赤道上的长度计算如下:

  40075.04km/360°=111.31955km

  111.31955km/60=1.8553258km=1855.3m

  而每一分又有60秒,每一秒就代表1855.3m/60=30.92m

  任意两点距离计算公式为

  d=111.12cos{1/[sinΦAsinΦB十cosΦAcosΦBcos(λB—λA)]}

  其中A点经度,纬度分别为λA和ΦA,B点的经度、纬度分别为λB和ΦB,d为距离。



c#代码
private const double EARTH_RADIUS = 6378.137; //地球半径
private static double rad(double d)
{
   return d * Math.PI / 180.0;
}

public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
   double radLat1 = rad(lat1);
   double radLat2 = rad(lat2);
   double a = radLat1 - radLat2;
   double b = rad(lng1) - rad(lng2);
   double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +
    Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));
   s = s * EARTH_RADIUS;
   s = Math.Round(s * 10000) / 10000;
   return s;
}
返回值的单位是KM
分享到:
评论

相关推荐

    asp.net百度地图经纬度计算

    经纬度计算是根据地球的半径和两个点的经纬度计算出它们之间的距离。地球的半径约为 6378.137 千米。通过使用余弦定理和球面三角函数,可以计算出两个点之间的距离。 二、经纬度计算的算法 经纬度计算的算法有多种...

    c# winfrom/asp.net实现查看附近的人和两个人之间的距离计算

    - 在C#中,可以编写一个方法,接收两个经纬度对,然后利用哈弗辛公式计算距离。可以使用`Math.Sin`,`Math.Cos` 和 `Math.Atan2` 这些内置函数。 - 注意,由于浮点数计算可能存在误差,结果需要进行适当的舍入处理...

    GMAP.NETDemo.rar_GMAP.NET_GMFlow_GMap.net Demo_GMap官网实例_gmap c#

    GMAP.NET是一个强大的开源地图库,专为.NET开发者设计,用于在Windows Forms、WPF、ASP.NET以及UWP等平台上集成地图功能。本Demo展示了GMAP.NET的强大功能和易用性,通过C#语言实现,提供了丰富的示例,帮助开发者...

    GoogleMap Api二次开发+Asp.Net+数据库+GPS

    GoogleMap API提供了测量工具,可以计算两点或多点之间的直线距离或实际路线距离。这对于规划路线、估算行驶时间或者在地图上分析地理空间关系都非常有用。 5. Asp.Net: Asp.Net是微软开发的一个用于构建Web应用的...

    Gmap.net 源码

    3. **地理位置处理**:通过GMap.NET,开发者可以获取经纬度坐标,进行距离计算、坐标转换等地理位置处理,也可以实现地址解析和反向地址解析,将地址与经纬度对应起来。 4. **路线规划**:GMap.NET集成了路线规划...

    第三方GMap.Net开发Google地图搜索,路线规划

    GMap.NET是基于.NET Framework的,它允许C#开发者在Windows Forms、WPF、Silverlight、WinRT和ASP.NET中轻松地嵌入地图。这个库不仅提供了地图显示的功能,还支持地理编码(地址到经纬度转换)、反地理编码(经纬度...

    C# VS2010下前后台交互调用百度地图API 实现标注、测距、画轨迹、画圆

    测距功能则需要调用API的测距服务,通常通过提供两点或多点的坐标,API会返回它们之间的距离。在后台计算出距离后,可以将结果显示在界面上,为用户提供参考。 画轨迹和画圆是更复杂一些的地图操作。画轨迹可能涉及...

    GMap_CORE_GMAP.NET改造版本_GMAP_源码.zip

    6. **路线规划**:通过集成路线规划算法,GMap.NET可以计算两点或多点之间的最佳行驶路线,包括交通信息、距离和预计时间。 7. **多语言支持**:地图标签和提示可设置为不同语言,以适应全球化需求。 8. **自定义...

    TPY-Sharp.rar_Sharp_c sharp 坐标_c#保存数据_监控_监控 CSharp

    在C#中,可以使用各种几何和数学类库来处理经纬度坐标,比如计算两点之间的距离、转换坐标系等。开发者可能自定义了数据结构来存储这些坐标信息,并进行解析、分析或展示。 3. **C#保存数据**: 数据保存通常涉及...

    gmaps_api_net

    gmaps_api_net提供了Routing服务,可以计算两个或多个地点之间的最佳路线,包括驾车、步行、骑行等多种交通方式,并显示路线详情,如距离、预计时间等。对于复杂的地图应用,还可以使用Polygon和Polyline类来绘制...

    GPS Runner地图:我的第一个Windows Azure应用程序

    《GPS Runner地图:我的第一个Windows Azure应用程序》是一个利用C#编程语言、Windows Azure云平台以及ASP.NET技术构建的Web应用程序。这个项目旨在帮助跑步者或其他户外活动爱好者在Google或Bing地图上展示他们的...

Global site tag (gtag.js) - Google Analytics