private void plotPath(Canvas bitmap, iustc.map.data.Path path, iustc.map.data.Rectangle rect, Paint paint, bool isLine) { int index = path.getNextNodeIndex(0); if (index < 0) return; // List<int> points = default(List<int>); PointCollection points = new PointCollection(); Node node = (Node)path.content[index]; Point point = geoToView(node.lat, node.lon, rect); Point startPoint = point; points.Add(point); while (true) { index = path.getNextNodeIndex(index + 1); if (index < 0) break; node = (Node)path.content[index]; point = geoToView(node.lat, node.lon, rect); points.Add(point); } if (isLine) { Polyline polyline = new Polyline(); polyline.Points = points; polyline.Stroke = paint.Stroke; polyline.StrokeEndLineCap = paint.StrokeCap; polyline.StrokeStartLineCap = paint.StrokeCap; polyline.StrokeThickness = paint.StrokeThickness; polyline.Fill = paint.Fill; bitmap.Children.Add(polyline); } else { points.Add(startPoint); Polygon polygon = new Polygon(); polygon.Points = points; polygon.Stroke = paint.Stroke; polygon.StrokeEndLineCap = paint.StrokeCap; polygon.StrokeStartLineCap = paint.StrokeCap; polygon.Fill = paint.Fill; bitmap.Children.Add(polygon); } }
private void plotPath(WriteableBitmap bitmap, iustc.map.data.Path path, iustc.map.data.Rectangle rect, Paint paint) { int index = path.getNextNodeIndex(0); if (index < 0) return; Polygon temp = new Polygon(); temp.Stroke = paint.Stroke; temp.Fill = paint.Fill; temp.StrokeEndLineCap = paint.StrokeCap; temp.StrokeStartLineCap = paint.StrokeCap; temp.StrokeThickness = paint.StrokeThickness; Node node = (Node)path.content[index]; Point point = geoToView(node.lat, node.lon, rect); temp.Points.Add(point); while (true) { index = path.getNextNodeIndex(index + 1); if (index < 0) break; node = (Node)path.content[index]; point = geoToView(node.lat, node.lon, rect); temp.Points.Add(point); } }