Exemple #1
0
        /// <summary>
        /// Рисует все пути на карте этажа
        /// </summary>
        /// <param name="dataOfBot"></param>
        /// <param name="FloorNumber"></param>
        /// <returns></returns>
        public BitmapSettings DrawAllWaysAndAllShops(CachedDataModel dataOfBot, int FloorNumber)
        {
            var bitmap = new BitmapSettings(new Bitmap(Image.FromFile(ConfigurationManager.AppSettings["ContentPath"] + $"Floors\\{dataOfBot.Floors.FirstOrDefault(x => x.Number == FloorNumber).FloorID}.{dataOfBot.Floors.FirstOrDefault(x => x.Number == FloorNumber).FileExtension}")));

            var mbMapHelper = new BotMapHelper();
            var graph       = mbMapHelper.GetOneLayer(dataOfBot, dataOfBot.Floors.FirstOrDefault(x => x.Number == FloorNumber));

            DrawAllShops(graph, dataOfBot);
            var layer = graph.Layers[0];

            using (var gr = Graphics.FromImage(bitmap.Bmp))
            {
                gr.SmoothingMode      = SmoothingMode.HighQuality;
                gr.CompositingQuality = CompositingQuality.HighQuality;
                gr.InterpolationMode  = InterpolationMode.HighQualityBicubic;
                gr.PixelOffsetMode    = PixelOffsetMode.HighQuality;

                foreach (var item in layer.Segments)
                {
                    gr.DrawLine(bitmap.MyPen,
                                (float)(item.Vertex0.Point.X) / ZoomOfPicture + bitmap.I,
                                (float)(item.Vertex0.Point.Y) / ZoomOfPicture + bitmap.J,
                                (float)(item.Vertex1.Point.X) / ZoomOfPicture + bitmap.I,
                                (float)(item.Vertex1.Point.Y) / ZoomOfPicture + bitmap.J);
                }
            }
            DrawLandMarksExtra(dataOfBot, FloorNumber);

            var tmp = $"Этаж {FloorNumber.ToString()}   {dataOfBot.Customers[0].Name} {dataOfBot.Customers[0].LocaleCity}";

            DrawText(tmp, BotTextHelper.LengthOfString(tmp, bitmap), 5F, 23, Color.DarkSlateGray, true);

            return(bitmap);
        }