public void TestSHPFile_PolygonM() { //SHPFile shpF = new SHPFile(@"E:\Data\ShenZhen\2000_pt.shp"); SHPFile shpF = new SHPFile(AppDomain.CurrentDomain.BaseDirectory + "\\Data\\SHP\\polygonm.shp", @"C: \Users\niuni\Desktop\新建文件夹\polygonm_after.shp"); //SHPFile shpF = new SHPFile(@"E:\Data\ShenZhen\Z坐标转换\54shp\grid_54_xy114_line.shp"); //SHPFile shpF = new SHPFile(@"E:\Data\ShenZhen\Z坐标转换\54shp\grid_54_xy114_point.shp"); shpF.OpenRead(); shpF.OpenWrite(); if (shpF.ReadHeader()) { shpF.WriteHeader(); List <SHPRecord> records = new List <SHPRecord>(); uint readNum = 10000; int writeNum = 0; do { records = shpF.ReadRecords(readNum); Console.WriteLine("读取1000条数据..."); writeNum = shpF.WriteRecords(records); Console.WriteLine(string.Format("写入{0}条数据...", writeNum)); } while (records.Count == 10000); } shpF.CloseRead(); shpF.CloseWrite(); //Console.ReadKey(); }
public void TestSHPFile_Point() { SHPFile shpF = new SHPFile(AppDomain.CurrentDomain.BaseDirectory + "\\Data\\SHP\\point.shp", @"C: \Users\niuni\Desktop\新建文件夹\point_after.shp"); shpF.OpenRead(); shpF.OpenWrite(); if (shpF.ReadHeader()) { shpF.WriteHeader(); List <SHPRecord> records = new List <SHPRecord>(); uint readNum = 10000; int writeNum = 0; do { records = shpF.ReadRecords(readNum); Console.WriteLine("读取1000条数据..."); double x = 0d, y = 0d; for (int i = 0; i < records.Count; i++) { if (records[i].Feature is null) { continue; } for (int j = 0; j < records[i].Feature.NumPoints; j++) { try { records[i].Feature.GetPointAt(j, out x, out y); x += 500; y += 500; records[i].Feature.SetPointAt(j, x, y); } catch { continue; } } } writeNum = shpF.WriteRecords(records); Console.WriteLine(string.Format("写入{0}条数据...", writeNum)); } while (records.Count == 10000); } shpF.CloseRead(); shpF.CloseWrite(); //Console.ReadKey(); }
public void TestSHPFile_BigData() { SHPFile shpF = new SHPFile(@"E:\Data\Shanxi\T图件转换\大数据\test\test.shp", @"C: \Users\niuni\Desktop\新建文件夹\big.shp"); shpF.OpenRead(); shpF.OpenWrite(); if (shpF.ReadHeader()) { shpF.WriteHeader(); List <SHPRecord> records = new List <SHPRecord>(); uint readNum = 10000; int writeNum = 0; do { records = shpF.ReadRecords(readNum); Console.WriteLine("读取1000条数据..."); writeNum = shpF.WriteRecords(records); Console.WriteLine(string.Format("写入{0}条数据...", writeNum)); } while (records.Count == 10000); } shpF.CloseRead(); shpF.CloseWrite(); }