GPKGRTreeIndexExtension

Objective-C

@interface GPKGRTreeIndexExtension : GPKGBaseExtension

Swift

class GPKGRTreeIndexExtension : GPKGBaseExtension

RTree Index Extension

https://www.geopackage.org/spec/#extension_rtree

  • Extension name

    Declaration

    Objective-C

    @property (nonatomic, strong) NSString *extensionName;

    Swift

    var extensionName: String! { get set }
  • Extension definition URL

    Declaration

    Objective-C

    @property (nonatomic, strong) NSString *definition;

    Swift

    var definition: String! { get set }
  • Index geometries using geodesic lines

    Declaration

    Objective-C

    @property (nonatomic) BOOL geodesic;

    Swift

    var geodesic: Bool { get set }
  • Initialize

    Declaration

    Objective-C

    - (instancetype)initWithGeoPackage:(GPKGGeoPackage *)geoPackage;

    Swift

    init!(geoPackage: GPKGGeoPackage!)

    Parameters

    geoPackage

    GeoPackage

    Return Value

    new instance

  • Initialize

    Declaration

    Objective-C

    - (instancetype)initWithGeoPackage:(GPKGGeoPackage *)geoPackage
                           andGeodesic:(BOOL)geodesic;

    Swift

    init!(geoPackage: GPKGGeoPackage!, andGeodesic geodesic: Bool)

    Parameters

    geoPackage

    GeoPackage

    geodesic

    index using geodesic bounds

    Return Value

    new instance

  • Get a RTree Index Table DAO for the feature table

    Declaration

    Objective-C

    - (GPKGRTreeIndexTableDao *)tableDaoWithFeatureTable:(NSString *)featureTable;

    Swift

    func tableDao(withFeatureTable featureTable: String!) -> GPKGRTreeIndexTableDao!

    Parameters

    featureTable

    feature table

    Return Value

    RTree Index Table DAO

  • Get a RTree Index Table DAO for the feature dao

    Declaration

    Objective-C

    - (GPKGRTreeIndexTableDao *)tableDaoWithFeatureDao:(GPKGFeatureDao *)featureDao;

    Swift

    func tableDao(with featureDao: GPKGFeatureDao!) -> GPKGRTreeIndexTableDao!

    Parameters

    featureDao

    feature dao

    Return Value

    RTree Index Table DAO

  • Get or create the extension

    Declaration

    Objective-C

    - (GPKGExtensions *)extensionCreateWithFeatureTable:
        (GPKGFeatureTable *)featureTable;

    Swift

    func extensionCreate(with featureTable: GPKGFeatureTable!) -> GPKGExtensions!

    Parameters

    featureTable

    feature table

    Return Value

    extension

  • Get or create the extension

    Declaration

    Objective-C

    - (GPKGExtensions *)extensionCreateWithTableName:(NSString *)tableName
                                       andColumnName:(NSString *)columnName;

    Swift

    func extensionCreate(withTableName tableName: String!, andColumnName columnName: String!) -> GPKGExtensions!

    Parameters

    tableName

    table name

    columnName

    column name

    Return Value

    extension

  • Determine if the GeoPackage feature table has the extension

    Declaration

    Objective-C

    - (BOOL)hasWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func has(with featureTable: GPKGFeatureTable!) -> Bool

    Parameters

    featureTable

    feature table

    Return Value

    true if has extension

  • Determine if the GeoPackage table and column has the extension

    Declaration

    Objective-C

    - (BOOL)hasWithTableName:(NSString *)tableName
               andColumnName:(NSString *)columnName;

    Swift

    func has(withTableName tableName: String!, andColumnName columnName: String!) -> Bool

    Parameters

    tableName

    table name

    columnName

    column name

    Return Value

    true if has extension

  • Determine if the GeoPackage table has the extension

    Declaration

    Objective-C

    - (BOOL)hasWithTableName:(NSString *)tableName;

    Swift

    func has(withTableName tableName: String!) -> Bool

    Parameters

    tableName

    table name

    Return Value

    true if has extension

  • Determine if the GeoPackage has the extension for any table

    Declaration

    Objective-C

    - (BOOL)has;

    Swift

    func has() -> Bool

    Return Value

    true if has extension

  • Check if the feature table has the RTree extension and create the functions if needed

    Declaration

    Objective-C

    - (BOOL)createFunctionsWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func createFunctions(with featureTable: GPKGFeatureTable!) -> Bool

    Parameters

    featureTable

    feature table

    Return Value

    true if has extension and functions created

  • Check if the table and column has the RTree extension and create the functions if needed

    Declaration

    Objective-C

    - (BOOL)createFunctionsWithTableName:(NSString *)tableName
                           andColumnName:(NSString *)columnName;

    Swift

    func createFunctions(withTableName tableName: String!, andColumnName columnName: String!) -> Bool

    Parameters

    tableName

    table name

    columnName

    column name

    Return Value

    true if has extension and functions created

  • Check if the GeoPackage has the RTree extension and create the functions if needed

    Declaration

    Objective-C

    - (BOOL)createFunctions;

    Swift

    func createFunctions() -> Bool

    Return Value

    true if has extension and functions created

  • Create the RTree Index extension for the feature table. Creates the SQL functions, loads the tree, and creates the triggers.

    Declaration

    Objective-C

    - (GPKGExtensions *)createWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func create(with featureTable: GPKGFeatureTable!) -> GPKGExtensions!

    Parameters

    featureTable

    feature table

    Return Value

    extension

  • Create the RTree Index extension for the feature table, geometry column, and id column. Creates the SQL functions, loads the tree, and creates the triggers.

    Declaration

    Objective-C

    - (GPKGExtensions *)createWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName
                            andIdColumnName:(NSString *)idColumnName;

    Swift

    func create(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!) -> GPKGExtensions!

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

    Return Value

    extension

  • Create the RTree Index Virtual Table

    Declaration

    Objective-C

    - (void)createRTreeIndexWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func createRTreeIndex(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Create the RTree Index Virtual Table

    Declaration

    Objective-C

    - (void)createRTreeIndexWithTableName:(NSString *)tableName
                    andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func createRTreeIndex(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Create all connection SQL Functions for min x, max x, min y, max y, and is empty

    Declaration

    Objective-C

    - (void)createAllFunctions;

    Swift

    func createAllFunctions()
  • Create the min x SQL function

    Declaration

    Objective-C

    - (void)createMinXFunction;

    Swift

    func createMinXFunction()
  • Create the max x SQL function

    Declaration

    Objective-C

    - (void)createMaxXFunction;

    Swift

    func createMaxXFunction()
  • Create the min y SQL function

    Declaration

    Objective-C

    - (void)createMinYFunction;

    Swift

    func createMinYFunction()
  • Create the max y SQL function

    Declaration

    Objective-C

    - (void)createMaxYFunction;

    Swift

    func createMaxYFunction()
  • Create the is empty SQL function

    Declaration

    Objective-C

    - (void)createIsEmptyFunction;

    Swift

    func createIsEmptyFunction()
  • Load the RTree Spatial Index Values

    Declaration

    Objective-C

    - (void)loadRTreeIndexWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func loadRTreeIndex(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Load the RTree Spatial Index Values

    Declaration

    Objective-C

    - (void)loadRTreeIndexWithTableName:(NSString *)tableName
                  andGeometryColumnName:(NSString *)geometryColumnName
                        andIdColumnName:(NSString *)idColumnName;

    Swift

    func loadRTreeIndex(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Create Triggers to Maintain Spatial Index Values

    Declaration

    Objective-C

    - (void)createAllTriggersWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func createAllTriggers(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Create Triggers to Maintain Spatial Index Values

    Declaration

    Objective-C

    - (void)createAllTriggersWithTableName:(NSString *)tableName
                     andGeometryColumnName:(NSString *)geometryColumnName
                           andIdColumnName:(NSString *)idColumnName;

    Swift

    func createAllTriggers(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Create insert trigger

     Conditions: Insertion of non-empty geometry
     Actions   : Insert record into R-tree
     

    Declaration

    Objective-C

    - (void)createInsertTriggerWithTableName:(NSString *)tableName
                       andGeometryColumnName:(NSString *)geometryColumnName
                             andIdColumnName:(NSString *)idColumnName;

    Swift

    func createInsertTrigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Deprecated

    Create update 1 trigger

     Conditions: Update of geometry column to non-empty geometry
                 No row ID change
     Actions   : Update record in R-tree
     

    Declaration

    Objective-C

    - (void)createUpdate1TriggerWithTableName:(NSString *)tableName
                        andGeometryColumnName:(NSString *)geometryColumnName
                              andIdColumnName:(NSString *)idColumnName;

    Swift

    func createUpdate1Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name @deprecated replaced by update6 and update7

  • Create update 2 trigger

     Conditions: Update of geometry column to empty geometry
                 No row ID change
     Actions   : Remove record from R-tree
     

    Declaration

    Objective-C

    - (void)createUpdate2TriggerWithTableName:(NSString *)tableName
                        andGeometryColumnName:(NSString *)geometryColumnName
                              andIdColumnName:(NSString *)idColumnName;

    Swift

    func createUpdate2Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Deprecated

    Create update 3 trigger

     Conditions: Update of any column
                 Row ID change
                 Non-empty geometry
     Actions   : Remove record from R-tree for old <i>
                 Insert record into R-tree for new <i>
     

    Declaration

    Objective-C

    - (void)createUpdate3TriggerWithTableName:(NSString *)tableName
                        andGeometryColumnName:(NSString *)geometryColumnName
                              andIdColumnName:(NSString *)idColumnName;

    Swift

    func createUpdate3Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name @deprecated replaced by update5

  • Create update 4 trigger

     Conditions: Update of any column
                 Row ID change
                 Empty geometry
     Actions   : Remove record from R-tree for old and new <i>
     

    Declaration

    Objective-C

    - (void)createUpdate4TriggerWithTableName:(NSString *)tableName
                        andGeometryColumnName:(NSString *)geometryColumnName
                              andIdColumnName:(NSString *)idColumnName;

    Swift

    func createUpdate4Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Create update 5 trigger

     Conditions: Update of any column
                 Row ID change
                 Non-empty geometry
     Actions   : Remove record from R-tree for old <i>
                 Insert record into R-tree for new <i>
     

    Declaration

    Objective-C

    - (void)createUpdate5TriggerWithTableName:(NSString *)tableName
                        andGeometryColumnName:(NSString *)geometryColumnName
                              andIdColumnName:(NSString *)idColumnName;

    Swift

    func createUpdate5Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Create update 6 trigger

     Conditions: Update a non-empty geometry with another non-empty geometry
     Actions   : Replace record from R-tree for <i>
     

    Declaration

    Objective-C

    - (void)createUpdate6TriggerWithTableName:(NSString *)tableName
                        andGeometryColumnName:(NSString *)geometryColumnName
                              andIdColumnName:(NSString *)idColumnName;

    Swift

    func createUpdate6Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Create update 7 trigger

     Conditions: Update a null/empty geometry with a non-empty geometry
     Actions   : Insert record into R-tree for new <i>
     

    Declaration

    Objective-C

    - (void)createUpdate7TriggerWithTableName:(NSString *)tableName
                        andGeometryColumnName:(NSString *)geometryColumnName
                              andIdColumnName:(NSString *)idColumnName;

    Swift

    func createUpdate7Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Create delete trigger

     Conditions: Row deleted
     Actions   : Remove record from R-tree for old <i>
     

    Declaration

    Objective-C

    - (void)createDeleteTriggerWithTableName:(NSString *)tableName
                       andGeometryColumnName:(NSString *)geometryColumnName
                             andIdColumnName:(NSString *)idColumnName;

    Swift

    func createDeleteTrigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andIdColumnName idColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    idColumnName

    id column name

  • Delete the RTree Index extension for the feature table. Drops the triggers, RTree table, and deletes the extension.

    Declaration

    Objective-C

    - (void)deleteWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func delete(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Delete the RTree Index extension for the table and geometry column. Drops the triggers, RTree table, and deletes the extension.

    Declaration

    Objective-C

    - (void)deleteWithTableName:(NSString *)tableName
          andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func delete(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Delete all RTree Index extensions for the table. Drops the triggers, RTree tables, and deletes the extensions.

    Declaration

    Objective-C

    - (void)deleteWithTableName:(NSString *)tableName;

    Swift

    func delete(withTableName tableName: String!)

    Parameters

    tableName

    table name

  • Delete all RTree Index extensions. Drops the triggers, RTree tables, and deletes the extensions.

    Declaration

    Objective-C

    - (void)deleteAll;

    Swift

    func deleteAll()
  • Drop the the triggers and RTree table for the feature table

    Declaration

    Objective-C

    - (void)dropWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func drop(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Drop the the triggers and RTree table for the table and geometry column

    Declaration

    Objective-C

    - (void)dropWithTableName:(NSString *)tableName
        andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func drop(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop the RTree Index Virtual Table

    Declaration

    Objective-C

    - (void)dropRTreeIndexWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func dropRTreeIndex(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Drop the RTree Index Virtual Table

    Declaration

    Objective-C

    - (void)dropRTreeIndexWithTableName:(NSString *)tableName
                  andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropRTreeIndex(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Check if the feature table has the RTree extension and if found, drop the triggers

    Declaration

    Objective-C

    - (void)dropTriggersWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func dropTriggers(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Check if the table and column has the RTree extension and if found, drop the triggers

    Declaration

    Objective-C

    - (BOOL)dropTriggersWithTableName:(NSString *)tableName
                        andColumnName:(NSString *)columnName;

    Swift

    func dropTriggers(withTableName tableName: String!, andColumnName columnName: String!) -> Bool

    Parameters

    tableName

    table name

    columnName

    column name

    Return Value

    true if dropped

  • Drop Triggers that Maintain Spatial Index Values

    Declaration

    Objective-C

    - (void)dropAllTriggersWithFeatureTable:(GPKGFeatureTable *)featureTable;

    Swift

    func dropAllTriggers(with featureTable: GPKGFeatureTable!)

    Parameters

    featureTable

    feature table

  • Drop Triggers that Maintain Spatial Index Values

    Declaration

    Objective-C

    - (void)dropAllTriggersWithTableName:(NSString *)tableName
                   andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropAllTriggers(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop insert trigger

    Declaration

    Objective-C

    - (void)dropInsertTriggerWithTableName:(NSString *)tableName
                     andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropInsertTrigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop update 1 trigger

    Declaration

    Objective-C

    - (void)dropUpdate1TriggerWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropUpdate1Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop update 2 trigger

    Declaration

    Objective-C

    - (void)dropUpdate2TriggerWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropUpdate2Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop update 3 trigger

    Declaration

    Objective-C

    - (void)dropUpdate3TriggerWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropUpdate3Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop update 4 trigger

    Declaration

    Objective-C

    - (void)dropUpdate4TriggerWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropUpdate4Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop update 5 trigger

    Declaration

    Objective-C

    - (void)dropUpdate5TriggerWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropUpdate5Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop update 6 trigger

    Declaration

    Objective-C

    - (void)dropUpdate6TriggerWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropUpdate6Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop update 7 trigger

    Declaration

    Objective-C

    - (void)dropUpdate7TriggerWithTableName:(NSString *)tableName
                      andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropUpdate7Trigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop delete trigger

    Declaration

    Objective-C

    - (void)dropDeleteTriggerWithTableName:(NSString *)tableName
                     andGeometryColumnName:(NSString *)geometryColumnName;

    Swift

    func dropDeleteTrigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

  • Drop the trigger for the table, geometry column, and trigger name

    Declaration

    Objective-C

    - (void)dropTriggerWithTableName:(NSString *)tableName
               andGeometryColumnName:(NSString *)geometryColumnName
                      andTriggerName:(NSString *)triggerName;

    Swift

    func dropTrigger(withTableName tableName: String!, andGeometryColumnName geometryColumnName: String!, andTriggerName triggerName: String!)

    Parameters

    tableName

    table name

    geometryColumnName

    geometry column name

    triggerName

    trigger name