id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 10380 gdal Envelope should allow min_x == max_x and/or min_y == max_y psmith jbronn "When initializing a new {{{django.contrib.gis.gdal.Envelope}}} object, an {{{OGRException}}} is raised if the {{{min_x}}} value is less than or equal to {{{max_x}}}, and if the {{{min_y}}} value is less than or equal to {{{max_y}}}. It would be better if the exception was raised on in the case that {{{min_x}}} was greater than {{{max_x}}} and/or if {{{min_y}}} greater than {{{max_y}}}. The reason that it is often useful to create an {{{Envelope}}} from a point initially, say from the extent of a {{{django.contrib.gis.geos.Point}}} object, where the {{{min_x}}} and {{{min_y}}} will equal the {{{max_x}}} and {{{max_y}}}, respectively. For example, to find the extent of a set or list of points, it is convenient to iterate over the collection, creating the Envelope initially with the first point from the iteration, then expanding it with each successive point. (Perhaps using the {{{expand_to_include}}} method proposed in #10368.) Example: {{{ >>> from django.contrib.gis.geos import Point >>> from django.contrib.gis.gdal import Envelope >>> env = None >>> for pt in [Point(5, 10), Point(-1, 3), Point(9, -2)]: ... if env is None: ... env = Envelope(pt.extent) ... else: ... env.expand_to_include(pt.extent) >>> env.tuple (-1, -2, 9, 10) }}} Making this change should have no impact on the semantics of the {{{Envelope}}} class: indeed, the {{{OGREnvelope}}} class in {{{ogr_core.h}}} from which it is derived does not enforce or check for the ordering of the min and max values." closed GIS 1.0 fixed envelope extent gdal Accepted 1 0 0 0 0 0