2013-04-24 79 views
-2

如果您有一个指定地图上的点的地理数据库,如何找到落入四个给定点的点?你将如何实现一个算法,将相邻的点放在半径为1英里的圆上?地理数据库 - 查找点

+0

你的'Hows'分开。你试过什么了? – 2013-04-24 16:44:46

+0

a)Polygon.contains(point); b)对你来说很难 – AlexWien 2013-04-24 16:53:55

+0

这是一个相对有挑战性的事情,要有效地做。 – 2013-04-24 16:59:00

回答

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也可能有所帮助,并提供一个更有效的方式来看待这个问题。