使用 NetTopologySuite 计算事件偏移量?

Computing an event offset using NetTopologySuite?

NetTopologySuite 是否有必要的工具来计算沿和远离多段线在垂直方向偏移的给定距离的点?

这将用于在地图上放置标志,这些标志被描述为沿 242 号公路 3.1 英里,距离中心线 50 英尺。我发现了 NetTopologySuite.Geometries.Triangle.PerpendicularBisector,但对我来说意义不大(似乎 return 是垂直线的公式)。

是的,可能有几种方式。你可以做到这一点的一种方法是使用中心线的缓冲区(查看 NetTopologySuite.Operation.Buffer.BufferOp.Buffer),然后沿着缓冲的几何形状找到一个点 'x' 距离 (NetTopologySuite.Operation.Distance.DistanceOp.Distance)

要获得线性几何的单点偏移,您应该使用 LocationIndexedLine:

var gf = new NetTopologySuite.Geometries.GeometryFactory();
var l = gf.CreateLineString(new GeoAPI.Geometries.Coordinate[]
{
    new GeoAPI.Geometries.Coordinate(10, 10),
    new GeoAPI.Geometries.Coordinate(1000, 10),
});

var lid = new NetTopologySuite.LinearReferencing.LocationIndexedLine(l);
var p = lid.ExtractPoint(500, 10);

p 位于 (510, 20)