【发布时间】:2016-11-02 18:16:13
【问题描述】:
我在数据库中有一个表,我在其中保存多边形的顶点,其结构如下:IdPolygon (int) , Latitude (real) , Longitude (real) 。
为了检查一个点是否在一个注册的多边形内,我正在寻找一个纬度和经度范围的“IdPolygon”,然后我循环这个多边形列表以查看该点是否在任何一个内他们。
让我检查一个点是否在银行中注册的任何多边形内的最佳实践是什么,具有更好的性能?
【问题讨论】:
-
您可能想研究搜索算法并找到适合您需求的算法。
-
其实顶点列表的信息并不充分。您需要知道它们以什么顺序相互连接。否则,例如,您无法将正五边形与五角星区分开(可以从同一组顶点构造任何一个)。如果你有一个顶点序列,你可以使用缠绕数算法来确定一个点是否在多边形内。
-
谢谢@JuanTomas。顶点在您的提示之后排序。
标签: c# sql-server-2008 spatial