Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }