搜索任意多边形区域的坐标数据的数据库

时间:2009-03-08 19:27:35

标签: search geolocation polygon

我有一个关系数据库,其中每个条目都标记为带有纬度/经度坐标的点。我让用户能够在地图上标记任意多边形,并希望返回多边形内的所有条目。

实现这一目标的最佳方法是什么?

此外,值得指出的是,小错误是可以的(即,如果有一种有效的方法将多边形转换为一组矩形,那就没问题了。)

3 个答案:

答案 0 :(得分:2)

使用空间扩展,大多数数据库都有这个。 在MySql中,您只能将它们与非事务性的MyISAM表一起使用。

http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html

答案 1 :(得分:2)

快速减少要考虑的点数的一种方法是计算多边形的边界矩形(即,只是多边形中点的min-x,min-y,max-x,max-y) ,然后选择边界矩形内的点(即x在min-x和max-x之间,y在y之间相同)。

当然并非所有这些点都必须在多边形内,但现在你可以用代码来磨练它。

答案 2 :(得分:-1)

老黑客:

计算连接<point far away><point in question>的线穿过多边形的任何边界线段的次数。

  • 偶数表示该点在多边形之外
  • 奇数表示它在多边形内
相关问题