【发布时间】:2015-03-12 04:08:49
【问题描述】:
我正在尝试使用纬度和经度计算从 Destination1 到 Destination2 的公里距离
Destination1(Cebu City PH) 纬度:1017.8590,经度:12353.4304
Destination2(Talisay PH) 纬度:1015.6445,经度:12350.0404
我的输出是:299.28607720457882 KM
代码:
double lat1 = Convert.ToDouble(txtLat1.Text.ToString());
double lat2 = Convert.ToDouble(txtLat2.Text.ToString());
double lon1 = Convert.ToDouble(txtLong1.Text.ToString());
double lon2 = Convert.ToDouble(txtLong2.Text.ToString());
var R = 6378.137; // Radius of earth in KM
var dLat = (lat2 - lat1) * Math.PI / 180;
var dLon = (lon2 - lon1) * Math.PI / 180;
var a =
Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
Math.Cos(lat1 * Math.PI / 180) * Math.Cos(lat2 * Math.PI / 180) *
Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
string x = (R * c).ToString();
var d = (R * c);
我尝试使用http://www.entfernungsrechner.net/en/distance/city/1717512/city/1683881这个网站来计算该目的地的公里数,输出为12.2公里
【问题讨论】:
-
299.28607724057882km!计算到纳米的距离显然会有用
-
HoboSapiens 有什么用?你能给我一些链接或代码吗?
-
你错过了我评论中的讽刺。
-
stackoverflow.com/a/905913/55693 可能会有所帮助。
标签: c# google-maps math