app/django/contrib/gis/gdal/prototypes/ds.py
changeset 323 ff1a9aa48cfd
equal deleted inserted replaced
322:6641e941ef1e 323:ff1a9aa48cfd
       
     1 """
       
     2  This module houses the ctypes function prototypes for OGR DataSource
       
     3  related data structures. OGR_Dr_*, OGR_DS_*, OGR_L_*, OGR_F_*, 
       
     4  OGR_Fld_* routines are relevant here.
       
     5 """
       
     6 from ctypes import c_char_p, c_int, c_long, c_void_p, POINTER
       
     7 from django.contrib.gis.gdal.envelope import OGREnvelope
       
     8 from django.contrib.gis.gdal.libgdal import lgdal
       
     9 from django.contrib.gis.gdal.prototypes.generation import \
       
    10     const_string_output, double_output, geom_output, int_output, \
       
    11     srs_output, void_output, voidptr_output
       
    12 
       
    13 c_int_p = POINTER(c_int) # shortcut type
       
    14 
       
    15 ### Driver Routines ###
       
    16 register_all = void_output(lgdal.OGRRegisterAll, [], errcheck=False)
       
    17 cleanup_all = void_output(lgdal.OGRCleanupAll, [], errcheck=False)
       
    18 get_driver = voidptr_output(lgdal.OGRGetDriver, [c_int])
       
    19 get_driver_by_name = voidptr_output(lgdal.OGRGetDriverByName, [c_char_p])
       
    20 get_driver_count = int_output(lgdal.OGRGetDriverCount, [])
       
    21 get_driver_name = const_string_output(lgdal.OGR_Dr_GetName, [c_void_p])
       
    22 
       
    23 ### DataSource ###
       
    24 open_ds = voidptr_output(lgdal.OGROpen, [c_char_p, c_int, POINTER(c_void_p)])
       
    25 destroy_ds = void_output(lgdal.OGR_DS_Destroy, [c_void_p], errcheck=False)
       
    26 release_ds = void_output(lgdal.OGRReleaseDataSource, [c_void_p])
       
    27 get_ds_name = const_string_output(lgdal.OGR_DS_GetName, [c_void_p])
       
    28 get_layer = voidptr_output(lgdal.OGR_DS_GetLayer, [c_void_p, c_int])
       
    29 get_layer_by_name = voidptr_output(lgdal.OGR_DS_GetLayerByName, [c_void_p, c_char_p])
       
    30 get_layer_count = int_output(lgdal.OGR_DS_GetLayerCount, [c_void_p])
       
    31 
       
    32 ### Layer Routines ###
       
    33 get_extent = void_output(lgdal.OGR_L_GetExtent, [c_void_p, POINTER(OGREnvelope), c_int])
       
    34 get_feature = voidptr_output(lgdal.OGR_L_GetFeature, [c_void_p, c_long])
       
    35 get_feature_count = int_output(lgdal.OGR_L_GetFeatureCount, [c_void_p, c_int])
       
    36 get_layer_defn = voidptr_output(lgdal.OGR_L_GetLayerDefn, [c_void_p])
       
    37 get_layer_srs = srs_output(lgdal.OGR_L_GetSpatialRef, [c_void_p])
       
    38 get_next_feature = voidptr_output(lgdal.OGR_L_GetNextFeature, [c_void_p])
       
    39 reset_reading = void_output(lgdal.OGR_L_ResetReading, [c_void_p], errcheck=False)
       
    40 test_capability = int_output(lgdal.OGR_L_TestCapability, [c_void_p, c_char_p])
       
    41 
       
    42 ### Feature Definition Routines ###
       
    43 get_fd_geom_type = int_output(lgdal.OGR_FD_GetGeomType, [c_void_p])
       
    44 get_fd_name = const_string_output(lgdal.OGR_FD_GetName, [c_void_p])
       
    45 get_feat_name = const_string_output(lgdal.OGR_FD_GetName, [c_void_p])
       
    46 get_field_count = int_output(lgdal.OGR_FD_GetFieldCount, [c_void_p])
       
    47 get_field_defn = voidptr_output(lgdal.OGR_FD_GetFieldDefn, [c_void_p, c_int])
       
    48 
       
    49 ### Feature Routines ###
       
    50 clone_feature = voidptr_output(lgdal.OGR_F_Clone, [c_void_p])
       
    51 destroy_feature = void_output(lgdal.OGR_F_Destroy, [c_void_p], errcheck=False)
       
    52 feature_equal = int_output(lgdal.OGR_F_Equal, [c_void_p, c_void_p])
       
    53 get_feat_geom_ref = geom_output(lgdal.OGR_F_GetGeometryRef, [c_void_p])
       
    54 get_feat_field_count = int_output(lgdal.OGR_F_GetFieldCount, [c_void_p])
       
    55 get_feat_field_defn = voidptr_output(lgdal.OGR_F_GetFieldDefnRef, [c_void_p, c_int])
       
    56 get_fid = int_output(lgdal.OGR_F_GetFID, [c_void_p])
       
    57 get_field_as_datetime = int_output(lgdal.OGR_F_GetFieldAsDateTime, [c_void_p, c_int, c_int_p, c_int_p, c_int_p, c_int_p, c_int_p, c_int_p])
       
    58 get_field_as_double = double_output(lgdal.OGR_F_GetFieldAsDouble, [c_void_p, c_int])
       
    59 get_field_as_integer = int_output(lgdal.OGR_F_GetFieldAsInteger, [c_void_p, c_int])
       
    60 get_field_as_string = const_string_output(lgdal.OGR_F_GetFieldAsString, [c_void_p, c_int])
       
    61 get_field_index = int_output(lgdal.OGR_F_GetFieldIndex, [c_void_p, c_char_p])
       
    62 
       
    63 ### Field Routines ###
       
    64 get_field_name = const_string_output(lgdal.OGR_Fld_GetNameRef, [c_void_p])
       
    65 get_field_precision = int_output(lgdal.OGR_Fld_GetPrecision, [c_void_p])
       
    66 get_field_type = int_output(lgdal.OGR_Fld_GetType, [c_void_p])
       
    67 get_field_type_name = const_string_output(lgdal.OGR_GetFieldTypeName, [c_int])
       
    68 get_field_width = int_output(lgdal.OGR_Fld_GetWidth, [c_void_p])