public double GetDistanceInMeters(IHasCoordinates placemark1, IHasCoordinates placemark2) { if (placemark1.Coordinates?.Length != 1 || placemark2.Coordinates?.Length != 1) { throw new InvalidOperationException("Placemarks with multiple or zero coordinates are not supported"); } return(placemark1.Coordinates[0].GetDistanceTo(placemark2.Coordinates[0])); }
public double CalculateRouteDistanceInMeters(IHasCoordinates placemark) { if (placemark.Coordinates.Length < 2) { return(0d); } var sum = 0d; for (var i = 1; i < placemark.Coordinates.Length; i++) { sum += placemark.Coordinates[i].GetDistanceTo(placemark.Coordinates[i - 1]); } return(sum); }
public bool PlacemarkIsShape(IHasCoordinates placemark) { return(placemark.Coordinates.Length > 1); }