コード例 #1
0
        public KrigingViewerControl(List<Repository.Utils.LegendPattern> colors, InterpolatedFields KrigingField)
        {
            _colorsList = colors;
            _krigingField = KrigingField;

            InitializeComponent();
        }
コード例 #2
0
        private void GranulometryRowControl_Load(object sender, EventArgs e)
        {
            resizeControls();

            TablesList = new List<GranulometryItemTable>();
            KrigingField = new InterpolatedFields();

            flowLayoutPanel1.AutoScroll = true;
        }
コード例 #3
0
ファイル: Template1.cs プロジェクト: shoaib-ijaz/geosoft
        public void CreatePDF()
        {

            Document document = new Document(PageSize.A3, 0, 0, 0, 0);
            document.SetPageSize(PageSize.A3.Rotate());
            document.SetMargins(0, 0, 50f, 30f);

            var tempFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TempFiles", "report.pdf");
            var fileStream = new System.IO.FileStream(tempFileName, FileMode.Create);

            var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, fileStream);

            document.Open();

            var cb = writer.DirectContent;

            // Cover Page
            PdfPTable tblCover = new PdfPTable(1);
            tblCover.DefaultCell.Padding = 0;
            tblCover.DefaultCell.PaddingTop = 100;
            tblCover.DefaultCell.Border = 0;

            var coverImage = iTextSharp.text.Image.GetInstance(BitmapToByteArray(Properties.Resources.pdf_cover));
            coverImage.ScalePercent(80f);

            tblCover.AddCell(coverImage);

            document.Add(tblCover);

            // Map Page
            PdfPTable tblRibbon = new PdfPTable(1);
            tblRibbon.HorizontalAlignment = 0;
            tblRibbon.WidthPercentage = 98;
            tblRibbon.DefaultCell.Border = 0;

            var fontH1 = FontFactory.GetFont("Arial", 12, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.WHITE);
            var singeEntity = this.DataList[0];
            var title = string.Format("{0} / {1} / {2}", singeEntity.Interpolation.CustomerFarm.Customer.Name, singeEntity.Interpolation.CustomerFarm.Name, singeEntity.Interpolation.Name);

            PdfPCell cellRibbon = new PdfPCell(new Phrase(title, fontH1));
            cellRibbon.Border = 0;
            cellRibbon.Padding = 6;
            cellRibbon.BackgroundColor = new BaseColor(107, 176, 50);

            tblRibbon.AddCell(cellRibbon);

            int mapPerPage = 1;

            double count = Math.Ceiling((double)5 / mapPerPage);

            for (int i = 0; i < this.DataList.Count; i++)
            {
                this.CurrentField = this.DataList[i];
                document.NewPage();

                // Ribbon
                document.Add(tblRibbon);

                PdfPTable tblMaps = new PdfPTable(1);
                tblMaps.WidthPercentage = 70;
                tblMaps.DefaultCell.Border = 0;

                tblMaps.DefaultCell.PaddingBottom = 40;
                tblMaps.DefaultCell.PaddingTop = 100;

                tblMaps.AddCell(MapCell());

                document.Add(tblMaps);

            }

            document.Close();
            writer.Close();
            fileStream.Close();
        }
コード例 #4
0
        private void addKrigingLayerButton_Click(object sender, EventArgs e, MainApp.Forms.KrigingLayerSelectionFrom fm)
        {
            foreach (var item in fm.LayersItem)
            {
                if (item.isSelected)
                {
                    var krigingField = new InterpolatedFields();
                    krigingField.ZData = item.getZData();
                    krigingField.Field = !string.IsNullOrEmpty(item.Layer.LegendText) ? item.Layer.LegendText : item.Layer.DataSet.Name;
                    krigingField.Image = item.ImagePath;
                    krigingField.PieChartData = item.PieChartData;
                    krigingField.ColorsCategories = Newtonsoft.Json.JsonConvert.SerializeObject(item.ColorsList);

                    fm.Close();


                    var ctrl = new SelectedKrigingItem(krigingField, flowLayoutPanel1.Controls.Count + 1);
                    flowLayoutPanel1.Controls.Add(ctrl);
                }
            }

        }
コード例 #5
0
        private void addKrigingButton_Click(object sender, EventArgs e, GeoSoft.Plugins.Interpolation.Forms.KrigingForm fm)
        {
            if (fm != null && fm.KrigingFields.Count > 0)
            {
                foreach (var item in fm.KrigingFields)
                {
                    var krigingField = new InterpolatedFields();
                    krigingField.ZData = item.OutputZ;
                    krigingField.Field = item.Field;
                    krigingField.PieChartData = Newtonsoft.Json.JsonConvert.SerializeObject(item.PieChartData);
                    krigingField.Image = item.Image;

                    krigingField.ColorsCategories = Newtonsoft.Json.JsonConvert.SerializeObject(fm.ColorsList);

                    var ctrl = new SelectedKrigingItem(krigingField, flowLayoutPanel1.Controls.Count + 1);
                    flowLayoutPanel1.Controls.Add(ctrl);
                }

                fm.Close();
            }
        }
コード例 #6
0
ファイル: Project.cs プロジェクト: shoaib-ijaz/geosoft
        public static string SerializeProject(string name, List<DotSpatial.Symbology.ILayer> mapLayers, string directory, ref List<InterpolatedFields> fields)
        {
            try
            {
                var projectFile = new Project() { Name = name, Created = DateTime.Now };

                var layers = new List<ProjectLayer>();

                //Uncheck all
                foreach (var item in mapLayers.Where(c => (c is MapRasterLayer)))
                {
                    item.Checked = false;
                }

                CustomerExtension.MyAppManager.Legend.RefreshNodes();
                CustomerExtension.MyAppManager.Map.Refresh();

                //Start Loop
                foreach (var item in mapLayers)
                {

                    // Map Layer
                    if (item is MapImageLayer && item.DataSet is InRamImageData)
                    {
                        //var mapDropdown = CustomerExtension.MyAppManager.HeaderControl.GetItemByKey("kServiceDropDown") as DropDownActionItem;
                        //if (mapDropdown != null && (!string.IsNullOrEmpty(Convert.ToString(mapDropdown.SelectedItem)) || Convert.ToString(mapDropdown.SelectedItem) != "None"))
                        //    projectFile.BaseMap = new BaseMapLayer() { Name = item.LegendText, Source = Convert.ToString(mapDropdown.SelectedItem) };
                    }
                    else
                    {
                        string filePath = "", extraInfo = "";

                        //Point Features Layer
                        if (item is MapPointLayer && item.DataSet is PointShapefile)
                        {
                            var layer = item as IMapFeatureLayer;
                            filePath = Path.Combine(directory, Path.GetFileName(layer.DataSet.Filename));
                            layer.DataSet.SaveAs(filePath, true);
                        }

                        else if (item is MapPolygonLayer && item.DataSet is PolygonShapefile)
                        {
                            var layer = item as IMapPolygonLayer;
                            filePath = Path.Combine(directory, Path.GetFileName(layer.DataSet.Filename));
                            layer.DataSet.SaveAs(filePath, true);
                        }
                        else if (item is MapRasterLayer && item.DataSet is BgdRaster<float>)
                        {
                            var rasterLayer = item as DotSpatial.Symbology.RasterLayer;

                            var layer = item as MapRasterLayer;

                            filePath = Path.Combine(directory, Path.GetFileName(layer.DataSet.Filename));
                            var imagePath = Path.Combine(directory, Path.GetFileNameWithoutExtension(layer.DataSet.Filename) + ".jpg");

                            //if (!string.IsNullOrEmpty(layer.ExtraInfo))
                            //{
                            //    extraInfo = Path.Combine(directory, Path.GetFileName(layer.ExtraInfo));
                            //    File.Copy(layer.ExtraInfo, extraInfo);
                            //}

                            File.Copy(layer.DataSet.Filename, filePath);

                            ToggleLayer(layer, true);
                            TakeLayerSnapshot(imagePath);
                            ToggleLayer(layer, true);

                            var list = new List<ColorScheme>();

                            foreach (var scheme in rasterLayer.Symbolizer.Scheme.Categories)
                            {
                                list.Add(new ColorScheme() { HighColor = scheme.HighColor, LowColor = scheme.LowColor, Text = scheme.LegendText });
                            }

                            var iField = new InterpolatedFields()
                            {
                                Created = DateTime.Now,
                                Field = item.LegendText,
                                Max = rasterLayer.DataSet.Maximum,
                                Min = rasterLayer.DataSet.Minimum,
                                Mean = rasterLayer.DataSet.Mean,
                                Image = imagePath,
                            };

                            fields.Add(iField);
                        }

                        if (!string.IsNullOrEmpty(item.LegendText) || !string.IsNullOrEmpty(filePath))
                        {
                            layers.Add(new ProjectLayer() { name = item.LegendText, filePath = filePath, info = extraInfo });
                        }
                    }
                }
                //End Loop

                projectFile.Layers = layers;

                return JsonConvert.SerializeObject(projectFile);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #7
0
        public static bool SaveLayers(Map map, string directory, Chart pieChart, Panel panel, ref CustomerInterpolation interpolation, ref List<InterpolatedFields> saveFields)
        {

            var projectFile = new Project();
            var layers = new List<ProjectLayer>();
            var baseMap = new BaseMapLayer();

            UncheckAllLayers(map);

            foreach (var item in map.GetLayers())
            {
                // Map Layer
                if (item is MapImageLayer && item.DataSet is InRamImageData)
                {

                }
                else
                {
                    //Point Features Layer
                    if (item is MapPointLayer && item.DataSet is PointShapefile)
                    {
                        var layer = item as IMapFeatureLayer;
                        var fileName = Path.GetFileName(layer.DataSet.Filename);
                        var path = Path.Combine(directory, fileName);
                        layer.DataSet.SaveAs(Path.Combine(directory, fileName), true);
                        layers.Add(new ProjectLayer() { Path = path });

                        item.Checked = true;
                        PluginExtension.MyAppManager.Map.Refresh();
                    }
                    else if (item is MapPolygonLayer && item.DataSet is IFeatureSet)
                    {
                        var layer = item as IMapPolygonLayer;
                        var fileName = Path.GetFileName(layer.DataSet.Filename);
                        var path = Path.Combine(directory, fileName);

                        var imagePath = Path.Combine(directory, Path.GetFileNameWithoutExtension(layer.DataSet.Filename) + ".png");
                        var colorPlatImg = Path.Combine(directory, Path.GetFileNameWithoutExtension(layer.DataSet.Filename) + "_ColorPlate.png");
                        var pieChartImage = Path.Combine(directory, Path.GetFileNameWithoutExtension(layer.DataSet.Filename) + "_PIEChart.png");

                        item.Checked = true;
                        PluginExtension.MyAppManager.Map.Refresh();

                        if (KrigingTemp.Fields.Where(c => c.OutputShapeFile == fileName).Count() > 0)
                        {
                            var tempField = KrigingTemp.Fields.Where(c => c.OutputShapeFile == fileName).First();

                            SaveGridFile(tempField.OutputShapeFile, directory);

                            var intField = new InterpolatedFields();

                            intField.ZData = tempField.OutputZ;
                            intField.Field = tempField.Field;
                            intField.ShapeFile = path;
                            intField.Image = imagePath;
                            intField.PieChartData = Newtonsoft.Json.JsonConvert.SerializeObject(tempField.PieChartData);
                            intField.ProductValue = tempField.ProductResult;

                            if (new ConfigSaveKriging().LoadPieChart(pieChart, panel, tempField.PieChartData, pieChartImage))
                            {
                                intField.PieChartImage = pieChartImage;
                            }

                            var ls = new List<ColorCategory>();

                            foreach (var s in layer.Symbology.Categories.ToList())
                            {
                                ls.Add(new ColorCategory()
                                {
                                    Color = s.GetColor(),
                                    Expression = s.FilterExpression,
                                    LegendText = s.LegendText,
                                    Max = s.Maximum,
                                    Min = s.Minimum,
                                });
                            }

                            var colorPlate = CreateColorPlate(ls);

                            if (colorPlate != null)
                            {
                                colorPlate.Save(colorPlatImg, System.Drawing.Imaging.ImageFormat.Png);
                                intField.ColorPlateImage = colorPlatImg;
                            }

                            intField.ColorsCategories = Newtonsoft.Json.JsonConvert.SerializeObject(ls);

                            var array = Array.ConvertAll(tempField.OutputZ.Split(','), Double.Parse);


                            intField.Max = Convert.ToDouble(array.Max(), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
                            intField.Min = Convert.ToDouble(array.Min(), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);
                            intField.Mean = Convert.ToDouble(Math.Round(array.Average(), 2), System.Globalization.CultureInfo.InvariantCulture.NumberFormat);

                            saveFields.Add(intField);

                            getSnapshot(imagePath);
                        }
                        else
                        {
                            layers.Add(new ProjectLayer() { Path = path });
                        }

                        layer.DataSet.SaveAs(path, true);
                    }
                }
            }

            projectFile.BaseMap = baseMap;
            projectFile.Layers = layers;

            interpolation.ProjectFiles = Newtonsoft.Json.JsonConvert.SerializeObject(projectFile);

            return true;
        }
コード例 #8
0
ファイル: Template6.cs プロジェクト: shoaib-ijaz/geosoft
        public void CreatePDF()
        {

            var pageSize = new iTextSharp.text.Rectangle(700f, 650f);

            Document document = new Document(PageSize.A3, 0, 0, 0, 0);
            document.SetPageSize(PageSize.A3.Rotate());
            document.SetMargins(0, 0, 13f, 20f);

            var tempFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TempFiles", "report.pdf");
            var fileStream = new System.IO.FileStream(tempFileName, FileMode.Create);

            var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, fileStream);

            document.Open();

            var cb = writer.DirectContent;

            // Cover Page
            PdfPTable tblCover = new PdfPTable(1);
            tblCover.DefaultCell.Padding = 0;
            tblCover.DefaultCell.PaddingTop = 100;
            tblCover.DefaultCell.Border = 0;

            var coverImage = iTextSharp.text.Image.GetInstance(@"C:\Users\Shoaib\Desktop\cover.png");
            coverImage.ScalePercent(80f);

            tblCover.AddCell(coverImage);

            document.Add(tblCover);

            // Map Page
            document.NewPage();

            // Ribbon
            PdfPTable tblRibbon = new PdfPTable(1);
            tblRibbon.HorizontalAlignment = 0;
            tblRibbon.WidthPercentage = 98;
            tblRibbon.DefaultCell.Border = 0;

            var fontH1 = FontFactory.GetFont("Arial", 12, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.WHITE);
            var singeEntity = this.DataList[0];
            var title = string.Format("{0} / {1} / {2}", singeEntity.Interpolation.CustomerFarm.Customer.Name, singeEntity.Interpolation.CustomerFarm.Name, singeEntity.Interpolation.Name);

            PdfPCell cellRibbon = new PdfPCell(new Phrase(title, fontH1));
            cellRibbon.Border = 0;
            cellRibbon.Padding = 6;
            cellRibbon.BackgroundColor = new BaseColor(107, 176, 50);

            tblRibbon.AddCell(cellRibbon);

            int mapPerPage = 6;

            double pageCount = Math.Ceiling((double)this.DataList.Count / mapPerPage);

            for (int i = 1; i <= pageCount; i++)
            {
                document.NewPage();

                // Ribbon
                document.Add(tblRibbon);

                PdfPTable tblMaps = new PdfPTable(3);
                tblMaps.WidthPercentage = 90;
                tblMaps.DefaultCell.Border = 0;

                tblMaps.DefaultCell.PaddingBottom = 0;
                tblMaps.DefaultCell.PaddingTop = 3;

                var count = 0;

                foreach (var item in this.DataList.Skip((i - 1) * mapPerPage).Take(mapPerPage))
                {
                    this.CurrentField = item;
                    tblMaps.AddCell(MapCell());
                    count++;
                }

                while (count <= 3)
                {
                    tblMaps.AddCell("");
                    count++;
                }


                document.Add(tblMaps);

            }

            document.Close();
            writer.Close();
            fileStream.Close();
        }
コード例 #9
0
        private void addKrigingLayerButton_Click(object sender, EventArgs e, MainApp.Forms.KrigingLayerSelectionFrom fm)
        {
            foreach (var item in fm.LayersItem)
            {
                if (item.isSelected)
                {

                    KrigingField = new InterpolatedFields();
                    KrigingField.ZData = item.getZData();
                    KrigingField.Field = !string.IsNullOrEmpty(item.Layer.LegendText) ? item.Layer.LegendText : item.Layer.DataSet.Name;
                    KrigingField.Image = item.ImagePath;
                    KrigingField.PieChartData = item.PieChartData;

                    ColorsList = item.ColorsList;

                    fm.Close();

                    pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
                    pictureBox1.Image = Image.FromFile(KrigingField.Image);

                    break;
                }
            }

        }
コード例 #10
0
 private void btnRemoveKriging_Click(object sender, EventArgs e)
 {
     this.pictureBox1.Image = null;
     this.ColorsList.Clear();
     this.KrigingField = null;
 }
コード例 #11
0
 public SelectedKrigingItem(InterpolatedFields interpolatedFields, int order)
 {
     this._interpolatedFields = interpolatedFields;
     _order = order;
     InitializeComponent();
 }