快速查找点是否属于多边形(NetTopologySuite.Geometries,C#..net core 2.2)
Fast find if points belong to polygon (NetTopologySuite.Geometries, C#. .net core 2.2)
是否有一种有效的方法来查找 NetTopologySuite.Geometries.Point 类型的点,这些点位于 NetTopologySuite.Geometries.PointPolygon 类型的给定多边形内
使用 .net 核心 2.2。
我尝试按照下面的文档进行操作,但没有成功:https://nettopologysuite.github.io/html/class_net_topology_suite_1_1_algorithm_1_1_locate_1_1_indexed_point_in_area_locator.html#ad28b305b77c52327b7787ca8016c0fd7。
对于一对多谓词测试,使用 GeoAPI.Geometries.Prepared.IPreparedGeometry
。
您可以使用 NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory
.
创建一个
private IList<IPoint> Contains(IGeometry geom, IEnumerable<IPoint> points) {
var prepGeom = new NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory().Prepare(geom);
var res = new List<IPoint>();
foreach(var point in points) {
if (prepGeom.Contains(point)) res.Add(point);
}
return res;
}
是否有一种有效的方法来查找 NetTopologySuite.Geometries.Point 类型的点,这些点位于 NetTopologySuite.Geometries.PointPolygon 类型的给定多边形内 使用 .net 核心 2.2。 我尝试按照下面的文档进行操作,但没有成功:https://nettopologysuite.github.io/html/class_net_topology_suite_1_1_algorithm_1_1_locate_1_1_indexed_point_in_area_locator.html#ad28b305b77c52327b7787ca8016c0fd7。
对于一对多谓词测试,使用 GeoAPI.Geometries.Prepared.IPreparedGeometry
。
您可以使用 NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory
.
private IList<IPoint> Contains(IGeometry geom, IEnumerable<IPoint> points) {
var prepGeom = new NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory().Prepare(geom);
var res = new List<IPoint>();
foreach(var point in points) {
if (prepGeom.Contains(point)) res.Add(point);
}
return res;
}