/// <summary>
/// 判断点是否有压盖、重叠
/// </summary>
/// <param name="pLyrPath"></param>
/// <returns></returns>
public List<IFeature> PointOverlaySelf(string pLyrPath)
{
var fs = new List<IFeature>();
var fsPoints = ShpUtils.FS(pLyrPath);
var fsLines = ShpUtils.FS(pLyrPath);
for (var i = 0; i < fsPoints.Count; i++)
{
var fp = fsPoints[i];
IFeature theOverlayPoint = null;
for (var j = 0; j < fsLines.Count; j++)
{
if (j == i) continue;
var fl = fsLines[j];
var geomP = fp.Geometry;
var geoL = fl.Geometry;
if (geoL.Distance(geomP) == 0)
{
theOverlayPoint = fl;
break;
}
}
if (null != theOverlayPoint)
{
fs.Add(fp);
}
}
return fs;
}
其中:
ShpUtils.FS(pLyrPath);是获取shp文件中的所有要素。

该代码段实现了一个功能,用于检测和处理点是否在几何线条中存在压盖或重叠的情况。通过遍历SHP文件中的点和线条,计算它们之间的距离,当距离为0时认为存在重叠,并将重叠的点加入结果列表。
1万+

被折叠的 条评论
为什么被折叠?



