如果你有一个指定地图上点的地理数据库,你将如何找到落在四个给定点内的点?你将如何实现一种算法,该算法将彼此相邻的点分成半径为1英里的圆圈?
答案 0 :(得分:1)
有时真的有助于把它画出来。
| a
| b
| x
|d c
|---------
所以每个点都有两个坐标(x,y)。检查点是否在4个点内的简单方法是检查它们的坐标。
为简单起见,假设您知道a和d的x坐标小于b和c的x坐标,并且a和b的y坐标大于y坐标d和c。然后你可以假设如果x在这四个点之内,那么:
The x coordinate of x (using x(x) to make it shorter) can be described by
x(x)>=a(x)
and x(x)>=d(x)
and x(x)<=b(x)
and x(x)<=c(x)
类似的逻辑应该适用于y坐标。但请注意,有更有效的方法可以做到这一点,我只是想说明问题,希望能让它更清晰。
This link也可能有所帮助,并提供了一种更有效的方式来查看该问题。