Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
 }
Exemple #6
0
        public void DecodeEmptyString()
        {
            var positions = EncodedPolyline.Decode("");

            Assert.Empty(positions);
        }
Exemple #7
0
        public void EncodeEmptyPositions()
        {
            var encodedStr = EncodedPolyline.Encode(new List <Position> ());

            Assert.True(string.IsNullOrEmpty(encodedStr));
        }