4 votos

Calcular la distancia del punto a lo largo de una línea con NetTopologySuite

Estoy buscando para calcular la distancia a lo largo de una línea de un punto utilizando NetTopologySuite.

Hay indicaciones de que el distanceOp puede tener algo que ver con ella, dado que puedo, un punto en una línea más cercana a otra geometría. Sin embargo, ¿cómo determinar la distancia a lo largo de la línea de ese punto? Sin duda, puedo determinar lo que la distancia es a mí mismo a través de algún código, pero me gustaría tener a través de la NTS ya habría esta cubierto de descuento.

Alguien tiene alguna sugerencia?

Gracias,

Matt

9voto

kjo Puntos 197

LinearReferencing.LengthLocationMap obtener la distancia de punto a lo largo de una línea.

Calcula el LinearLocation para una determinada longitud a lo largo de un lineal De la geometría.Negativo longitudes se miden en sentido inverso desde el final de la geometría lineal. Fuera-de-rango de valores se sujetan.

using NetTopologySuite.LinearReferencing;

string wkt = "LINESTRING (0 0, 10 0, 10 10)";
WKTReader rdr = new WKTReader();
IGeometry g1 = rdr.Read(wkt);

ILineString linearGeometry = (ILineString)g1;
Coordinate pt = new Coordinate(10,5);
LinearLocation linearLocation = LocationIndexOfPoint.IndexOf(linearGeometry, pt);
double length = LengthLocationMap.GetLength(linearGeometry, linearLocation);

0voto

auramo Puntos 161

Yo no uso el STC/NTS Api mucho a mí mismo, pero me gustaría ver el LengthIndexedLine clase:

Apoya la referencia lineal a lo largo de un lineal Geometry el uso de la longitud a lo largo de la línea como el índice. Duración negativa se toman los valores medidos en la dirección inversa de la final de la geometría. Fuera-de-rango de valores del índice son manejados por sujetándolos para el rango válido de valores. No líneas simples (es decir, que volver a cruzar o se tocan a sí mismos) son compatibles.

En particular, mirar el project método de:

Calcula el índice del punto más cercano en la línea a la punto. Si hay más de un punto la distancia más corta a la primera a lo largo de la línea se devuelve. (El punto no necesariamente tiene que radican precisamente en la línea).

Estoy suponiendo que el valor devuelto es la longitud real de la línea a ese punto. Yo podría estar fuera de base, aunque, como yo no lo he probado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X