C# 两个地理位置之间的距离(英尺)
如何以不同的单位找出两个位置之间的差异。我已经找到了以公里和英里为单位计算的方法,但不确定英尺C# 两个地理位置之间的距离(英尺),c#,.net,google-maps,geolocation,geometry,C#,.net,Google Maps,Geolocation,Geometry,如何以不同的单位找出两个位置之间的差异。我已经找到了以公里和英里为单位计算的方法,但不确定英尺 private double Distance(double lat1, double lon1, double lat2, double lon2, int unit) { double theta = lon1 - lon2; double dist = Math.Sin(Deg2rad(lat1)) * Math.Sin(Deg2rad(lat2)) +
private double Distance(double lat1, double lon1, double lat2, double lon2, int unit)
{
double theta = lon1 - lon2;
double dist = Math.Sin(Deg2rad(lat1)) * Math.Sin(Deg2rad(lat2)) + Math.Cos(Deg2rad(lat1)) * Math.Cos(Deg2rad(lat2)) * Math.Cos(Deg2rad(theta));
dist = Math.Acos(dist);
dist = Rad2deg(dist);
dist = dist * 60 * 1.1515;
if (unit == GeoFence.RadiusUnits.Kilometers.GetHashCode())
{
dist = dist * 1.609344; //kilometers
}
else if (unit == GeoFence.RadiusUnits.Feet.GetHashCode())
{
//Here I need to calculate distance in feet
}
return (dist); //By default the distance is in statute miles
}
我不确定1.609344以公里为单位计算它背后的逻辑似乎是以英里为单位的距离 1英里等于1.609344公里(或5280英尺),因此您必须以5280英里的距离多向行驶
else if (unit == GeoFence.RadiusUnits.Feet.GetHashCode())
{
dist = dist * 5280;
}