private void BUT_shptopoly_Click(object sender, EventArgs e)
{
using (var fd = new OpenFileDialog())
{
fd.Filter = "Shape file|*.shp";
var result = fd.ShowDialog();
var file = fd.FileName;
var pStart = new ProjectionInfo();
var pESRIEnd = KnownCoordinateSystems.Geographic.World.WGS1984;
var reproject = false;
if (File.Exists(file))
{
var prjfile = Path.GetDirectoryName(file) + Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(file) + ".prj";
if (File.Exists(prjfile))
{
using (
var re =
File.OpenText(Path.GetDirectoryName(file) + Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(file) + ".prj"))
{
pStart.ParseEsriString(re.ReadLine());
reproject = true;
}
}
var fs = FeatureSet.Open(file);
fs.FillAttributes();
var rows = fs.NumRows();
var dtOriginal = fs.DataTable;
for (var row = 0; row < dtOriginal.Rows.Count; row++)
{
var original = dtOriginal.Rows[row].ItemArray;
}
foreach (DataColumn col in dtOriginal.Columns)
{
Console.WriteLine(col.ColumnName + " " + col.DataType);
}
var a = 1;
var path = Path.GetDirectoryName(file);
foreach (var feature in fs.Features)
{
var sb = new StringBuilder();
sb.Append("#Shap to Poly - Mission Planner\r\n");
foreach (var point in feature.Coordinates)
{
if (reproject)
{
double[] xyarray = { point.X, point.Y };
double[] zarray = { point.Z };
Reproject.ReprojectPoints(xyarray, zarray, pStart, pESRIEnd, 0, 1);
point.X = xyarray[0];
point.Y = xyarray[1];
point.Z = zarray[0];
}
sb.Append(point.Y.ToString(CultureInfo.InvariantCulture) + "\t" +
point.X.ToString(CultureInfo.InvariantCulture) + "\r\n");
}
log.Info("writting poly to " + path + Path.DirectorySeparatorChar + "poly-" + a + ".poly");
File.WriteAllText(path + Path.DirectorySeparatorChar + "poly-" + a + ".poly", sb.ToString());
a++;
}
}
}
}