Esempio n. 1
0
        public static string mitab_c_get_field_name_csharp(TabHandle handle, int field)
        {
            var i = mitab_c_get_field_name(handle, field);
            var s = Marshal.PtrToStringAnsi(i);

            // Marshal.FreeCoTaskMem(i);

            return(s);
        }
Esempio n. 2
0
        public static string mitab_c_get_field_as_string_csharp(TabHandle feature, int field)
        {
            var i = mitab_c_get_field_as_string(feature, field);
            var s = Marshal.PtrToStringAnsi(i);

            // Marshal.FreeHGlobal(i);

            return(s);
        }
Esempio n. 3
0
        public static void GetEdgeNodes(TabHandle feature, int part, out double startLongX, out double startLatY,
                                        out double endLongX, out double endLatY)
        {
            int vCount = Mitab.mitab_c_get_vertex_count(feature, part);

            startLongX = (double)Mitab.mitab_c_get_vertex_x(feature, part, 0);
            startLatY  = (double)Mitab.mitab_c_get_vertex_y(feature, part, 0);

            endLongX = (double)Mitab.mitab_c_get_vertex_x(feature, part, vCount - 1);
            endLatY  = (double)Mitab.mitab_c_get_vertex_y(feature, part, vCount - 1);
        }
Esempio n. 4
0
        public unsafe static void CheckProjectionLLWgs84(TabHandle mitabHandle)
        {
            TabHandle prj = Mitab.mitab_c_get_projinfo(mitabHandle);
            byte *    p   = (byte *)prj;

            if (p[0] != 1 && p[56] != 104)
            {
                Exception eb = new Exception("Invalid TAB projection. Table must be LL/Wgs84 (CoordSys 1,104)");
                throw eb;
            }
        }
Esempio n. 5
0
        public MitabColumns(TabHandle mitabHandle)
        {
            // Contract.Requires<ArgumentException>(mitabHandle != 0);

            for (int k = 0; k < Mitab.mitab_c_get_field_count(mitabHandle); k++)
            {
                Column c;

                c.name  = Mitab.mitab_c_get_field_name_csharp(mitabHandle, k);
                c.type  = Mitab.mitab_c_get_field_type(mitabHandle, k);
                c.index = k;

                columnlist.Add(c.name, c);
            }
        }
Esempio n. 6
0
        public static double[][] GetCoordsD(TabHandle feature, int part)
        {
            int vCount = Mitab.mitab_c_get_vertex_count(feature, part);

            double[][] result = new double[vCount][];

            for (int k = 0; k < vCount; k++)
            {
                double x = (double)Mitab.mitab_c_get_vertex_x(feature, part, k);
                double y = (double)Mitab.mitab_c_get_vertex_y(feature, part, k);

                result[k] = new double[2] {
                    x, y
                };
            }

            return(result);
        }
Esempio n. 7
0
        public static float[][] GetCoordsF(TabHandle feature, int part)
        {
            int vCount = Mitab.mitab_c_get_vertex_count(feature, part);

            float[][] result = new float[vCount][];

            for (int k = 0; k < vCount; k++)
            {
                float x = (float)Mitab.mitab_c_get_vertex_x(feature, part, k);
                float y = (float)Mitab.mitab_c_get_vertex_y(feature, part, k);

                result[k] = new float[2] {
                    x, y
                };
            }

            return(result);
        }
Esempio n. 8
0
        public static void GetCurrentCentroid(TabHandle feature, int part, out double cx, out double cy)
        {
            double x = 0, y = 0;

            cx = 0; cy = 0;

            int c = Mitab.mitab_c_get_vertex_count(feature, part);

            cx = Mitab.mitab_c_get_vertex_x(feature, part, 0);
            cy = Mitab.mitab_c_get_vertex_y(feature, part, 0);

            for (int k = 1; k < c; k++)
            {
                x = Mitab.mitab_c_get_vertex_x(feature, part, k);
                y = Mitab.mitab_c_get_vertex_y(feature, part, k);

                cx = (cx + x) / 2;
                cy = (cy + y) / 2;
            }
        }
Esempio n. 9
0
        public static int GetBiggestPart(TabHandle feature)
        {
            int partCount = Mitab.mitab_c_get_parts(feature);

            int biggestPart   = 0;
            int biggestVCount = 0;

            for (int part = 0; part < partCount; part++)
            {
                int vCount = Mitab.mitab_c_get_vertex_count(feature, part);

                if (vCount >= biggestVCount)
                {
                    biggestPart   = part;
                    biggestVCount = vCount;
                }
            }

            return(biggestPart);
        }
Esempio n. 10
0
 public static extern int mitab_c_set_projinfo(TabHandle dataset, TabHandle projInfo);
Esempio n. 11
0
 public static extern void mitab_c_set_projection_info(TabHandle projInfo,
                                                       int nProjId, int nEllipsoidId, int nUnitsId, ref double[] adProjParams);
Esempio n. 12
0
 public static extern void mitab_c_set_points(TabHandle feature,
                                              int part, int vertex_count, double[] x, double[] y);
Esempio n. 13
0
 public static extern int mitab_c_set_affine_params(TabHandle projInfo,
                                                    int nAffineUnits, ref double[] adAffineParams);
Esempio n. 14
0
 public static extern int mitab_c_write_feature(TabHandle handle, TabHandle feature);
Esempio n. 15
0
 public static extern int mitab_c_set_text(TabHandle feature, string text);
Esempio n. 16
0
 public static extern int mitab_c_set_collection_region(TabHandle feature, TabHandle region, int make_copy);
Esempio n. 17
0
 public static extern int mitab_c_set_collection_polyline(TabHandle feature, TabHandle polyline, int make_copy);
Esempio n. 18
0
 public static extern int mitab_c_set_collection_multipoint(TabHandle feature, TabHandle multipoint, int make_copy);
Esempio n. 19
0
 public static extern int mitab_c_set_charset(TabHandle handle, string charset);
Esempio n. 20
0
 public static extern TabHandle mitab_c_set_brush(TabHandle feature,
                                                  int fg_color, int bg_color, int pattern, int transparent);
Esempio n. 21
0
 public static extern void mitab_c_set_arc(TabHandle feature,
                                           double center_x, double center_y, double x_radius, double y_radius, double start_angle, double end_angle);
Esempio n. 22
0
 public static extern int mitab_c_set_quick_spatial_index_mode(TabHandle dataset, int value);
Esempio n. 23
0
 public static extern int mitab_c_set_symbol(TabHandle feature,
                                             int symbol_no, int symbol_size, int symbol_color);
Esempio n. 24
0
 public static extern int mitab_c_next_feature_id(TabHandle handle, int last_feature_id);
Esempio n. 25
0
 public static extern int mitab_c_set_text_display(TabHandle feature,
                                                   double angle, double height, double width, int fg_color, int bg_color, int justification, int spacing, int linetype);
Esempio n. 26
0
 public static extern void mitab_c_set_field(TabHandle feature, int field, string value);
Esempio n. 27
0
 public static extern void mitab_c_set_font(TabHandle feature, string font_name);
Esempio n. 28
0
 public static extern void mitab_c_set_pen(TabHandle feature, int width, int pattern, int color);
Esempio n. 29
0
 public static extern int mitab_c_set_datum_info(TabHandle projInfo,
                                                 double dDatumShiftX, double dDatumShiftY, double dDatumShiftZ, ref double[] adDatumParams);
Esempio n. 30
0
 public static extern TabHandle mitab_c_read_feature(TabHandle handle, int feature_id);