如何使用Windows Phone 8.1中的MapControl确定LocationPoint(lat; long)是否在给定半径内

时间:2015-10-19 08:13:14

标签: c# xaml windows-phone-8.1 windows-8.1 bing-maps

我有一个在它周围给出半径的点,比如10英里。如何使用Windows Phone 8.1的映射功能确定另一个点是否在圆圈中?

1 个答案:

答案 0 :(得分:0)

从问题我假设你有两个点的球坐标(lat,lon)。您可以使用haversine formula简单地计算距离,这可以让您在乌鸦飞行时获得距离。

JavaScript中的示例(取自here):

   var radians = Array.prototype.map.call(arguments, function(deg) { return deg/180.0 * Math.PI; });
   var lat1 = radians[0], lon1 = radians[1], lat2 = radians[2], lon2 = radians[3];
   var R = 6372.8; // km
   var dLat = lat2 - lat1;
   var dLon = lon2 - lon1;

   var a = Math.sin(dLat / 2) * Math.sin(dLat /2) + Math.sin(dLon / 2) *     Math.sin(dLon /2) * Math.cos(lat1) * Math.cos(lat2);
   var c = 2 * Math.asin(Math.sqrt(a));

   return R * c;

如果你有平面坐标,只需使用毕达哥拉斯。