给定一个左上角的长/纬线和一个右下角的长/纬线,如何判断给定的长/纬线是否落在矩形内?
理想情况下,我会看到像
这样的东西bool IsWithinArea(float topLeftLat,float topLeftLong,
float bottomRightLat,float bottomRightLong,float testLat,float testLong)
更新
一个问题是从长/纬线创建的矩形可能来自旋转的地图,因此右下角并不总是大于左上角......
答案 0 :(得分:5)
我们可以使它比琐碎的检查更有趣:
return new Rect(topLeftLat, topLeftLong, bottomRightLat - topLeftLat, bottomRightLong - topLeftLong)
.Contains(testLat, testLong);
答案 1 :(得分:2)
不确定我是否想要简单
bool IsWithinArea(float topLeftLat, float topLeftLong, float bottomRightLat, float bottomRightLong, float testLat, float testLong)
{
return (testLat >= topLeftLat && testLat <= bottomRightLat && testLong >= topLeftLong && testLong <= bottomRightLong);
}
答案 2 :(得分:1)
假设Lat是x坐标,而long是y坐标,并假设坐标系的原点位于左上角:
public bool IsWithinArea(float topLeftLat,float topLeftLong,
float bottomRightLat,float bottomRightLong,float testLat,float testLong) {
return (testLat >= topLeftLat && testLat <= bottomRightLat && testLong >= topLeftLong && testLong <= bottomRightLong);
}
答案 3 :(得分:1)
一种方法是将long / lat对标准化为简单的x / y坐标。然后它应该是一个简单的excersize来确定一个点是否落在矩形内。
long / lat to x / y转换可在此处找到:Convert Lat/Longs to X/Y Co-ordinates