Rev | Line | |
---|
[13069] | 1 | using SharpMap.Data;
|
---|
| 2 | using SharpMap.Data.Providers;
|
---|
| 3 | using System.Data;
|
---|
| 4 | using System.IO;
|
---|
| 5 | using System.Linq;
|
---|
| 6 |
|
---|
| 7 | namespace HeuristicLab.BioBoost.Persistence {
|
---|
| 8 |
|
---|
| 9 | public static class ShapeFileLoader {
|
---|
| 10 | public static GeometryFeatureProvider LoadShapeFile(string filename) {
|
---|
| 11 | var shapefile = new ShapeFile(filename, true, true);
|
---|
| 12 | shapefile.Open();
|
---|
| 13 | var table = new FeatureDataTable {TableName = Path.GetFileNameWithoutExtension(shapefile.Filename)};
|
---|
| 14 | bool addColumns = true;
|
---|
| 15 | foreach (var row in shapefile.GetObjectIDsInView(shapefile.GetExtents()).Select(shapefile.GetFeature)) {
|
---|
| 16 | if (addColumns && row.Table != null) {
|
---|
| 17 | foreach (DataColumn col in row.Table.Columns)
|
---|
| 18 | table.Columns.Add(col.ColumnName, col.DataType);
|
---|
| 19 | addColumns = false;
|
---|
| 20 | }
|
---|
| 21 | var newRow = (FeatureDataRow) table.LoadDataRow(row.ItemArray, LoadOption.OverwriteChanges);
|
---|
| 22 | newRow.Geometry = row.Geometry;
|
---|
| 23 | }
|
---|
| 24 | return new GeometryFeatureProvider(table);
|
---|
| 25 | }
|
---|
| 26 | }
|
---|
| 27 | }
|
---|
Note: See
TracBrowser
for help on using the repository browser.