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 DecodePositions(string encoded, double[] expectedValues) { var lonVals = expectedValues.Where((val, index) => (index % 2) == 0); var latVals = expectedValues.Where((val, index) => (index % 2) == 1); var expectedList = latVals.Zip(lonVals).Select((pos) => new Position(pos.First, pos.Second)).ToList(); var retList = EncodedPolyline.Decode(encoded); Assert.Equal(expectedList, retList); }
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); }
/// <summary> /// Provides elevation data sampled along a path on the surface of the earth. /// </summary> /// <param name="polylinePath">Polyline path from which you wish to calculate elevation data</param> /// <param name="samples">The number of sample points along a path for which to return elevation data.</param> /// <returns>Results</returns> public GetElevationResponse ElevationAlongPath(EncodedPolyline polylinePath, int samples) { // Assign query params var queryParams = new QueryParams { ["path"] = $"enc:{polylinePath.EncodedPoints}", ["samples"] = samples.ToString() }; // Get API response result var response = Client.APIGet <GetElevationResponse>("/maps/api/elevation/json", queryParams); // Return it return(response); }
/// <summary> /// Decodes an encoded polyline point string /// </summary> /// <param name="polyline">Encoded polyline</param> /// <returns>List of coordinates</returns> public static IList <GeoCoordinatesLocation> DecodePolyline(EncodedPolyline polyline) { return(DecodePolyline(polyline.EncodedPoints)); }
public void DecodeEmptyString() { var positions = EncodedPolyline.Decode(""); Assert.Empty(positions); }
public void EncodeEmptyPositions() { var encodedStr = EncodedPolyline.Encode(new List <Position> ()); Assert.True(string.IsNullOrEmpty(encodedStr)); }