Beispiel #1
0
        private static ImageSource GetEditTraceLineImageSourceWithGdiPlusGeoCanvas(MapArguments mapArguments, InMemoryFeatureLayer inProcessLayer, Collection <SimpleCandidate> simpleCandidates, OutlineDrawMode outlineDrawMode)
        {
            MemoryStream            streamSource = null;
            OutlineGdiPlusGeoCanvas geoCanvas    = new OutlineGdiPlusGeoCanvas();

            geoCanvas.OutlineDrawMode = outlineDrawMode;
            using (var nativeImage = new System.Drawing.Bitmap((int)mapArguments.ActualWidth, (int)mapArguments.ActualHeight))
            {
                geoCanvas.BeginDrawing(nativeImage, mapArguments.CurrentExtent, mapArguments.MapUnit);
                lock (inProcessLayer)
                {
                    if (!inProcessLayer.IsOpen)
                    {
                        inProcessLayer.Open();
                    }
                    inProcessLayer.Draw(geoCanvas, simpleCandidates);
                }
                geoCanvas.EndDrawing();

                streamSource = new MemoryStream();
                nativeImage.Save(streamSource, System.Drawing.Imaging.ImageFormat.Png);
                streamSource.Seek(0, SeekOrigin.Begin);
            }

            BitmapImage bitmapImage = new BitmapImage();

            bitmapImage.BeginInit();
            bitmapImage.StreamSource = streamSource;
            bitmapImage.EndInit();
            bitmapImage.Freeze();

            return(bitmapImage);
        }
 protected override void DrawCore(GeoCanvas canvas)
 {
     if (highlightFeature != null)
     {
         highlightFeatureLayer.Clear();
         highlightFeatureLayer.InternalFeatures.Add(highlightFeature);
         highlightFeatureLayer.Draw(canvas, new Collection <SimpleCandidate>());
     }
 }
Beispiel #3
0
        private static ImageSource GetEditTraceLineImageSourceWithDrawingVisualGeoCanvas(MapArguments mapArguments, InMemoryFeatureLayer inProcessLayer, Collection <SimpleCandidate> simpleCandidates, OutlineDrawMode outlineDrawMode)
        {
            OutlineDrawingVisualGeoCanvas geoCanvas = new OutlineDrawingVisualGeoCanvas();

            geoCanvas.OutlineDrawMode = outlineDrawMode;
            RenderTargetBitmap nativeImage = new RenderTargetBitmap((int)mapArguments.ActualWidth, (int)mapArguments.ActualHeight, geoCanvas.Dpi, geoCanvas.Dpi, PixelFormats.Pbgra32);

            geoCanvas.BeginDrawing(nativeImage, mapArguments.CurrentExtent, mapArguments.MapUnit);
            lock (inProcessLayer)
            {
                if (!inProcessLayer.IsOpen)
                {
                    inProcessLayer.Open();
                }
                inProcessLayer.Draw(geoCanvas, simpleCandidates);
            }
            geoCanvas.EndDrawing();
            return(nativeImage);
        }