ThinkGeo.com    |     Documentation    |     Premium Support

Problem with line.GetLength if the distance is very small

dear sir,



when trying to use line.GetLength with very small distance (5-10) meters it give me this value (NaN).


so, is it what the function sould do, or is it a bug?



 


double check2 = line.GetLength(GeographyUnit.DecimalDegree, DistanceUnit.Meter);

thanks.




Hi Ahmed,


I’m not sure how do you use the line.GetLength, we had a test against this, and it works well. Following is our test code:


LineBaseShape line = new LineShape("LINESTRING(0 0, 0.00005 0.00005)");
double distance = line.GetLength(GeographyUnit.DecimalDegree,DistanceUnit.Meter);


The result of distance is 7.8626686663903191. Could you please give us your line shape which raises this problem?
Any more information is appreciated.
Thanks,
Sun

CODE: 
 MultilineShape line = startPoint.GetShortestLineTo(e.Position, GeographyUnit.DecimalDegree); 
 String s=line.GetLength(GeographyUnit.DecimalDegree, DistanceUnit.Meter).ToString("N2"); 
  
  
 startpoint value: {41.5904647409916,23.8025894165039,0} 
 e.Position value: {41.5902769863606,23.8025760054588,0} 
 result is: NaN

Ahmed,



I use your data and try your method as the following code; it works fine.
PointShape startPoint = new PointShape(41.5904647409916, 23.8025894165039);
PointShape endPoint = new PointShape(41.5902769863606, 23.8025760054588);
MultilineShape line = startPoint.GetShortestLineTo(endPoint, GeographyUnit.DecimalDegree);
String s = line.GetLength(GeographyUnit.DecimalDegree, DistanceUnit.Meter).ToString("N2");



Please provide us the version of web edition you are using.



Thanks,

Howard