At this time, my best bet is still that you reversed the coordinates (Latitude/Longitude instead of Longitude/Latitude).
Did you check this point?
Can you share how look the input coordinates when you call 'GeographicToWebMercator'?
ShapeFile File = new ShapeFile(); File.Read(ShapeFile); int count = 0; foreach (PolyLine Line in File.Data) { count++; Polyline Polyline = new Polyline(); for (int i = 0; i < Line.NumParts; i++) { int End = (i == Line.NumParts - 1) ? Line.NumPoints : Line.Parts[i + 1]; PointCollection Collection = new PointCollection(); for (int j = Line.Parts; j < End; j++) { MapPoint GeographicPoint = new MapPoint(Line.Points.X, Line.Points .Y); Collection.Add(GeographicPoint.GeographicToWebMercator()); } Polyline.Paths.Add(Collection); } AddToMap(Polyline); }
At this time, my best bet is still that you reversed the coordinates (Latitude/Longitude instead of Longitude/Latitude).
but rather the lines are simply distorted as if they have been affected by a map projection.
Notice how it is not simply the case that the positions are offset by a constant X,Y amount
At this scale, I don't think the map projection can explain the distorsion. Likely a data accuracy matter.