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); }
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); }
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); }
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; } }
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); } }
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); }
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); }
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; } }
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); }
public static extern int mitab_c_set_projinfo(TabHandle dataset, TabHandle projInfo);
public static extern void mitab_c_set_projection_info(TabHandle projInfo, int nProjId, int nEllipsoidId, int nUnitsId, ref double[] adProjParams);
public static extern void mitab_c_set_points(TabHandle feature, int part, int vertex_count, double[] x, double[] y);
public static extern int mitab_c_set_affine_params(TabHandle projInfo, int nAffineUnits, ref double[] adAffineParams);
public static extern int mitab_c_write_feature(TabHandle handle, TabHandle feature);
public static extern int mitab_c_set_text(TabHandle feature, string text);
public static extern int mitab_c_set_collection_region(TabHandle feature, TabHandle region, int make_copy);
public static extern int mitab_c_set_collection_polyline(TabHandle feature, TabHandle polyline, int make_copy);
public static extern int mitab_c_set_collection_multipoint(TabHandle feature, TabHandle multipoint, int make_copy);
public static extern int mitab_c_set_charset(TabHandle handle, string charset);
public static extern TabHandle mitab_c_set_brush(TabHandle feature, int fg_color, int bg_color, int pattern, int transparent);
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);
public static extern int mitab_c_set_quick_spatial_index_mode(TabHandle dataset, int value);
public static extern int mitab_c_set_symbol(TabHandle feature, int symbol_no, int symbol_size, int symbol_color);
public static extern int mitab_c_next_feature_id(TabHandle handle, int last_feature_id);
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);
public static extern void mitab_c_set_field(TabHandle feature, int field, string value);
public static extern void mitab_c_set_font(TabHandle feature, string font_name);
public static extern void mitab_c_set_pen(TabHandle feature, int width, int pattern, int color);
public static extern int mitab_c_set_datum_info(TabHandle projInfo, double dDatumShiftX, double dDatumShiftY, double dDatumShiftZ, ref double[] adDatumParams);
public static extern TabHandle mitab_c_read_feature(TabHandle handle, int feature_id);