本文介绍了计算在c#2点之间的距离的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图整理出一个方法来计算在C#2点之间的距离。
I am trying to sort out a method to calculate the distance between 2 points in c#.
这是我一直在努力了代码,虽然我担心的答案我,得到的是不正确的。
This is the code I have been trying though I fear the answer I get is not correct.
static void Main() { //postcode australia 2600 -> 3000 float latA = -31.997976f; float longA = 115.762877f; float latB = -31.99212f; float longB = 115.763228f; decimal distance = (DistanceBetween(latA, latB, longA, longB)); Console.WriteLine("Distance is" + distance); Console.ReadLine(); } static decimal DistanceBetween(float latA, float longA, float latB, float longB) { var RadianLatA = Math.PI * latA / 180; var RadianLatb = Math.PI * latB / 180; var RadianLongA = Math.PI * longA / 180; var RadianLongB = Math.PI * longB / 180; double theDistance = (Math.Sin(RadianLatA)) * Math.Sin(RadianLatb) + Math.Cos(RadianLatA) * Math.Cos(RadianLatb) * Math.Cos(RadianLongA - RadianLongB); return Convert.ToDecimal(((Math.Acos(theDistance) * (180.0 / Math.PI)))) * 69.09M * 1.6093M; }这是从本网站找到这里的响应适应 地址之间的距离
this was adapted from a response found on this site here Distance between addresses
这是什么有什么想法脚麻/
Any thoughts on what is going wrong/
由于瑞安
推荐答案的Ⅰ类一般用的是会有地理座标
double latA = -31.997976f; double longA = 115.762877f; double latB = -31.99212f; double longB = 115.763228f; var locA = new GeoCoordinate(latA, longA); var locB = new GeoCoordinate(latB, longB); double distance = locA.GetDistanceTo(locB ); // metres更多推荐
计算在c#2点之间的距离
发布评论