pro*_*mer 2 c# point rectangles coordinates
我在具有4个节点的地图上定义了一个矩形。
每个节点都是一对(X,Y)
X:纬度
Y:经度
X,Y:地理坐标(具有双精度值)
我想检查点 (X,Y)是否在该矩形内。
该点将是用户的当前位置(当前位置来自手机的GPS输出)
是否有特定的数学公式?如何确定特定点是否属于矩形?
原因我想在C#中实现它。
根据这个
http://msdn.microsoft.com/zh-cn/library/system.device.location.geocoordinate(v=vs.110).aspx
经度的范围可以从-180.0到180.0;因此,由于对数等于 1,因此您必须保持准确;想像一个矩形-180/180-180 180
(15, 178, 25, -178)
Run Code Online (Sandbox Code Playgroud)
该点(20, 179)应在矩形内,而(20, 177)不能在矩形内;这就是为什么RectangleF.Contains()在某些情况下可能不正确的原因;
// Just to show the idea with 180 latitude;
// First 4 parameters could be crammed into RectangleF
// And last 2 parameters into PointF
public static Boolean WithinRectangle(Double latitudeNorth,
Double longitudeWest,
Double latitudeSouth,
Double longitudeEast,
Double latitude,
Double longitude) {
if (latitude > latitudeNorth)
return false;
else if (latitude < latitudeSouth)
return false;
if (longitudeEast >= longitudeWest)
return ((longitude >= longitudeWest) && (longitude <= longitudeEast))
else
return (longitude >= longitudeWest) || (longitude <= longitudeEast);
return false;
}
Run Code Online (Sandbox Code Playgroud)