我有一个在它周围给出半径的点,比如10英里。如何使用Windows Phone 8.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;
如果你有平面坐标,只需使用毕达哥拉斯。