Exemple #1
0
            public override Tuple <string, List <Parameter> > GetInsertValueAndParameters(XmlParser xmlRowParser)
            {
                double x;

                if (!double.TryParse(xmlRowParser.ElementText(_dbColInputCol[Columns.X]), out x))
                {
                    return(null);
                }

                xmlRowParser.Reset();

                double y;

                if (!double.TryParse(xmlRowParser.ElementText(_dbColInputCol[Columns.Y]), out y))
                {
                    return(null);
                }

                xmlRowParser.Reset();

                DateTime time;

                if (!DateTime.TryParse(xmlRowParser.ElementText(_dbColInputCol[Columns.Time]), out time))
                {
                    return(null);
                }

                string           timeParamName = "time_" + _rowNum++;
                List <Parameter> parameters    = new List <Parameter>(new Parameter[] { new Parameter(timeParamName, NpgsqlDbType.Timestamp, time) });

                return(new Tuple <string, List <Parameter> >(ShapefileGeometry.GetValue(new PostGIS.Point(x, y, _sourceSRID), _importArea.Shapefile.SRID, timeParamName), parameters));
            }
        private void createFeature_Click(object sender, EventArgs e)
        {
            if (elements.Items.Count == 0)
            {
                MessageBox.Show("Must create elements.");
            }
            else
            {
                DynamicForm f = new DynamicForm("Configure feature...", DynamicForm.CloseButtons.OkCancel);
                f.AddTextBox("Feature name:", null, 50, "name");
                if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    string name = f.GetValue <string>("name").Trim();
                    if (name == "")
                    {
                        MessageBox.Show("Invalid name:  must not be blank.");
                    }
                    else
                    {
                        Shapefile shapefile = null;
                        try
                        {
                            shapefile = Shapefile.Create(name, (elements.Items[0] as Geometry).SRID, Shapefile.ShapefileType.Feature);
                            ShapefileGeometry.Create(shapefile, elements.Items.Cast <Geometry>().Select(g => new Tuple <Geometry, DateTime>(g, DateTime.MinValue)).ToList());
                            MessageBox.Show("Shapefile \"" + name + "\" created.");
                            elements.Items.Clear();
                            points.Items.Clear();
                        }
                        catch (Exception ex)
                        {
                            Console.Out.WriteLine("Failed to create shapefile:  " + ex.Message);

                            try { shapefile.Delete(); }
                            catch (Exception ex2) { Console.Out.WriteLine("Failed to delete failed shapefile:  " + ex2.Message); }
                        }
                    }
                }
            }
        }