def _geocol_select(self, geo_field, field_name):
        compiler = self.query.get_compiler(self.db)
        opts = self.model._meta
        if geo_field not in opts.fields:
            # Is this operation going to be on a related geographic field?
            # If so, it'll have to be added to the select related information
            # (e.g., if 'location__point' was given as the field name, then
            # chop the non-relational field and add select_related('location')).
            # Note: the operation really is defined as "must add select related!"
            self.query.add_select_related([field_name.rsplit(LOOKUP_SEP, 1)[0]])
            # Call pre_sql_setup() so that compiler.select gets populated.
            compiler.pre_sql_setup()
            for col, _, _ in compiler.select:
                if col.output_field == geo_field:
                    return col.as_sql(compiler, compiler.connection)[0]
            raise ValueError("%r not in compiler's related_select_cols" % geo_field)
        elif geo_field not in opts.local_fields:
            # This geographic field is inherited from another model, so we have to
            # use the db table for the _parent_ model instead.
            parent_model = geo_field.model._meta.concrete_model
            return self._field_column(compiler, geo_field, parent_model._meta.db_table)
        else:
            return self._field_column(compiler, geo_field)

    # Private API utilities, subject to change.
Returns a tuple containing the coordinates of the bounding box around
dataset/ETHPy150Open django/django/django/contrib/gis/db/models/query.py/GeoQuerySet._geocol_select--crossover with--dataset/ETHPy150Open jbrinley/HocrConverter/HocrConverter.py/HocrConverter.element_coordinates