private void ShowElevationOnChart(Collection <Feature> features)
        {
            ChartAxisLabels.Clear();
            ChartData.Clear();

            double     distance  = 0.0;
            int        index     = 0;
            PointShape lastPoint = new PointShape();

            foreach (var feature in features)
            {
                PointShape point = new PointShape(feature.ColumnValues["point"]);
                if (index++ != 0)
                {
                    LineShape line = new LineShape(new Collection <Vertex> {
                        new Vertex(lastPoint), new Vertex(point)
                    });
                    distance += line.GetAccurateLength(4326, DistanceUnit.Meter, DistanceCalculationMode.Haversine);
                }

                double tmpDistance = Math.Round(distance / 1000.0, 2);
                double value       = Math.Round(double.Parse(feature.ColumnValues["elevation"]), 2);
                ChartAxisLabels.Add(tmpDistance);
                ChartData.Add(new ChartInformation(value, point.X, point.Y, tmpDistance));

                lastPoint = point;
            }

            var mapper = Mappers.Xy <ChartInformation>().X(value => value.Distance).Y(value => value.Elevation);

            Charting.For <ChartInformation>(mapper);
            DataContext = this;
        }