-1
我有一個圍繞它的給定半徑的點,比如10英里。如何通過Windows Phone 8.1的映射功能確定另一個點是否在圓圈中?如何確定LocationPoint(lat; long)是否在Windows Phone 8.1的MapControl中給定的半徑範圍內
我有一個圍繞它的給定半徑的點,比如10英里。如何通過Windows Phone 8.1的映射功能確定另一個點是否在圓圈中?如何確定LocationPoint(lat; long)是否在Windows Phone 8.1的MapControl中給定的半徑範圍內
從這個問題我假設你有兩個點的球面座標(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;
如果有平面座標,只需使用畢達哥拉斯。