【问题标题】:Geo Database - find points [closed]地理数据库 - 查找点[关闭]
【发布时间】:2013-04-25 01:07:21
【问题描述】:

如果您有一个指定地图上点的地理数据库,您将如何找到落在四个给定点内的点?你将如何实现一种算法,将彼此相邻的球杆点组成半径为 1 英里的圆圈?

【问题讨论】:

  • 你的“如何”分开。到目前为止,您尝试过什么?
  • a) Polygon.contains(point); b) 对你来说很难
  • 这是一件相对具有挑战性的事情,要高效地完成。

标签: java


【解决方案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 也可能会有所帮助,并提供一种更有效的方式来查看问题。

【讨论】:

    猜你喜欢
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多