public string Transform(GoogleLatLng[] points) { if (points == null) { return(null); } if (points.Length < 1) { throw new ArgumentException("Points array must contain at least one element.", "points"); } double lat = 0, lng = 0; string polyline = string.Empty; for (int i = 0; i < points.Length; i++) { polyline += string.Format("{0}{1}", EncodedPolyline.Encode(points[i].Latitude - lat), EncodedPolyline.Encode(points[i].Longitude - lng)); lat = points[i].Latitude; lng = points[i].Longitude; } return(string.Format("enc:{0}", polyline)); }
public void EncodePositions(double[] inValues, string expected) { var lonVals = inValues.Where((val, index) => (index % 2) == 0); var latVals = inValues.Where((val, index) => (index % 2) == 1); var inList = latVals.Zip(lonVals).Select((pos) => new Position(pos.First, pos.Second)).ToList(); var encodedStr = EncodedPolyline.Encode(new List <Position> (inList)); Assert.Equal(expected, encodedStr); }
public void EncodeEmptyPositions() { var encodedStr = EncodedPolyline.Encode(new List <Position> ()); Assert.True(string.IsNullOrEmpty(encodedStr)); }