示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }