首页 新闻 会员 周边 捐助

Gis问题,判断一个点是否在Polygon内的方法, sharpmap的

0
悬赏园豆:200 [已关闭问题]

想判断一个点是否在一个polygon内。
听说有个gis的算法 ,就是用点发出一条射线,判断射线经过的polygon,在经过一个polygon后,如果点与polygon的交点数是奇数的话,就在这个polygon内,否则就不在。大家有谁听过这个算法啊?
SharpMap中有提供相关的东西吗 或者有类似的判断的方法?谢谢

问题补充: 我找到了within方法,但是呢,现在还有连个问题。 1, SharpMap.Geometries.BoundingBox bbox = new SharpMap.Geometries.Point(lon, lat).GetBoundingBox(); List<Geometry> list = layCountries.DataSource.GetGeometriesInView(bbox); Point point = new Point(lon, lat); for (int k = 0; k < list.Count; k++) { if (list[k].Contains(point)) { return "find it"; } } 我用这得到的list,不包含我要的那个点。 2, 加入我找到了包含那个点的Polygon的话,我也得不出来我要的polygon的属性,因为layCountries.DataSource.ExecuteIntersectionQuery(list[k], ds)出错了,报了个NotSupportedException.也就是说,我没办法把一个Geometry的信息读出来。但是layCountries.DataSource.ExecuteIntersectionQuery(bbox,ds)是可以读出来的。 为什么Geometry不行但是BoundingBox可以呢?
GodSpeed的主页 GodSpeed | 初学一级 | 园豆:0
提问于:2009-02-18 02:52
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册