예제 #1
0
        public void TestSecondWriteMethod()
        {
            var idColumn   = DbfFieldDescriptors.GetIntegerField("Id");
            var nameColumn = DbfFieldDescriptors.GetStringField("Name");
            var columns    = new List <DbfFieldDescriptor>()
            {
                idColumn, nameColumn
            };

            Func <MyClass, object> mapId   = myClass => myClass.Id;
            Func <MyClass, object> mapName = myClass => myClass.Name;
            var mapping = new List <Func <MyClass, object> >()
            {
                mapId, mapName
            };

            List <MyClass> values = new List <MyClass>();

            values.Add(new MyClass()
            {
                Id = 1, Name = "name1"
            });

            DbfFileFormat.Write(@"D:\yourFile.dbf", values, mapping, columns, Encoding.ASCII);
        }
        public static void WriteGeodeticBoundingBoxToGoogleTileRegionsAsShapefile(string fileName, BoundingBox geodeticBoundingBox, int zoomLevel)
        {
            var tiles = WebMercatorUtility.GeodeticBoundingBoxToGoogleTileRegions(geodeticBoundingBox, zoomLevel);

            IRI.Ket.ShapefileFormat.Shapefile.Save <TileInfo>(
                fileName,
                tiles,
                t => t.GeocentricExtent.AsEsriShape(SridHelper.GeodeticWGS84),
                new List <ShapefileFormat.Model.ObjectToDbfTypeMap <TileInfo> >()
            {
                new ShapefileFormat.Model.ObjectToDbfTypeMap <TileInfo>(DbfFieldDescriptors.GetIntegerField("Google Zoom"), t => t.ZoomLevel),
                new ShapefileFormat.Model.ObjectToDbfTypeMap <TileInfo>(DbfFieldDescriptors.GetIntegerField("Row Number"), t => t.RowNumber),
                new ShapefileFormat.Model.ObjectToDbfTypeMap <TileInfo>(DbfFieldDescriptors.GetIntegerField("Column Number"), t => t.ColumnNumber)
            },
                Encoding.ASCII,
                new NoProjection(),
                true);

            //IRI.Ket.ShapefileFormat.Shapefile.SaveAsShapefile(
            //    fileName,
            //    tiles.Select(r => (IEsriShape)r.GeodeticExtent.AsEsriShape()),
            //    false,
            //    new NoProjection(),
            //    true);

            //IRI.Ket.ShapefileFormat.Dbf.DbfFile.Write<TileInfo>(
            //    IRI.Ket.ShapefileFormat.Shapefile.GetDbfFileName(fileName),
            //    tiles,
            //    new List<Func<TileInfo, object>>()
            //    {
            //        new Func<TileInfo, object>(t=>t.ZoomLevel),
            //        new Func<TileInfo, object>(t=>t.RowNumber),
            //        new Func<TileInfo, object>(t=>t.ColumnNumber)
            //    },
            //    new List<ShapefileFormat.Dbf.DbfFieldDescriptor>()
            //    {
            //        ShapefileFormat.Dbf.DbfFieldDescriptors.GetIntegerField("Google Zoom"),
            //        ShapefileFormat.Dbf.DbfFieldDescriptors.GetIntegerField("Row Number"),
            //        ShapefileFormat.Dbf.DbfFieldDescriptors.GetIntegerField("Column Number")
            //    },
            //    Encoding.ASCII,
            //    true);
        }