Gps 在给定所有纬度/经度坐标的情况下,如何确定点是否在矩形内?

Gps 在给定所有纬度/经度坐标的情况下,如何确定点是否在矩形内?,gps,latitude-longitude,rectangles,Gps,Latitude Longitude,Rectangles,如果为矩形的所有4个角指定x/y坐标,然后再指定另一个x/y坐标,则如果左上角为0,0,则很容易确定该点是否在矩形内 但是如果坐标是纬度/经度,它们可能是负数(请参见附件)。在这种情况下,有没有一个公式能起作用 数学上,你可以用不等式来确定 编辑:在进行示例时,我注意到您将坐标设置为反格式(y,x),而不是(x,y)。在我的示例中,我使用(x,y)格式,所以我只是颠倒了顺序以便于解释 比方说 A=(-130,10) B=(-100,20) C=(-125,-5) D=(-100,5) 从矩形边构

如果为矩形的所有4个角指定x/y坐标,然后再指定另一个x/y坐标,则如果左上角为0,0,则很容易确定该点是否在矩形内

但是如果坐标是纬度/经度,它们可能是负数(请参见附件)。在这种情况下,有没有一个公式能起作用


数学上,你可以用不等式来确定

编辑:在进行示例时,我注意到您将坐标设置为反格式(y,x),而不是(x,y)。在我的示例中,我使用(x,y)格式,所以我只是颠倒了顺序以便于解释

比方说 A=(-130,10) B=(-100,20) C=(-125,-5) D=(-100,5)

从矩形边构建不等式:

if( (x,y) < AB && (x,y) > AC && (x,y) > CD && (x,y) < BD) then
    (x,y) belongs to rectangle ABCD
end if
Ay表示点A的Y分量,在这种情况下,其值为10

这个公式给了我们

(10 - 20) / (-130 - -100) = -10 / -30 = 1/3
现在我们有了

y = x/3 + b
我们现在确定b。现在我们知道A点和B点都属于这个公式。所以我们取其中任何一个来替换公式中的x,y值。让我们来看B点:

20 = -100/3 + b
我们给我们提供:

b = -100 / 60 = -10/6
我们现在有

y = x/3 - (6/10)
所以如果我们想确定点Z(10,15)是否属于你的复角,你首先要检查

y > x/3 - (10/6)
然后在Z(10,15)的情况下:

因此,满足此边的条件。您需要为每个边使用相同的逻辑

请注意,要确定是使用>还是希望点严格位于矩形内部;=如果矩形边上的点也属于该矩形。由你决定


我希望我的解释清楚。如果有些问题不清楚,请随时提问。

请看这里:我在回答中添加了一个具体的例子。希望它能帮助你。看起来很简单,但现在我知道,多边形中的一般点解并不比这更难。是的,在这种情况下,它是一个矩形,但你可以很容易地对一个多边形进行验证。是的,多边形的一般情况是众所周知的,使用现有源代码进行优化求解。见上面的链接
y > x/3 - (10/6)
15 > 10/3 - (10/6)

15 > 10/6

15 > 1.66 is true