private double GetLineDistance() { var minDistance = MinLineDistance / MapProjection.DegreesToViewportScale(ParentMap.ZoomLevel); var scale = 1d; if (minDistance < 1d) { scale = minDistance < 1d / 60d ? 3600d : 60d; minDistance *= scale; } var lineDistances = new double[] { 1d, 2d, 5d, 10d, 15d, 30d, 60d }; var i = 0; while (i < lineDistances.Length - 1 && lineDistances[i] < minDistance) { i++; } return(lineDistances[i] / scale); }