Esempio n. 1
0
    def layer_srs_bbox(self, layer, epsg_axis_order=False):
        for srs, extent in iteritems(self.srs_extents):
            if srs not in self.srs:
                continue

            # is_default is True when no explicit bbox is defined for this srs
            # use layer extent
            if extent.is_default:
                bbox = layer.extent.bbox_for(SRS(srs))
            elif layer.extent.is_default:
                bbox = extent.bbox_for(SRS(srs))
            else:
                # Use intersection of srs_extent and layer.extent.
                # Use 4326 extents to avoid transformation errors.
                a = extent.transform(SRS(4326))
                b = layer.extent.transform(SRS(4326))
                bbox = a.intersection(b).bbox_for(SRS(srs))

            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, srs)

            yield srs, bbox

        # add native srs
        layer_srs_code = layer.extent.srs.srs_code
        if layer_srs_code not in self.srs_extents:
            bbox = layer.extent.bbox
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, layer_srs_code)
            if layer_srs_code in self.srs:
                yield layer_srs_code, bbox
Esempio n. 2
0
    def layer_srs_bbox(self, layer, epsg_axis_order=False):
        for srs, extent in iteritems(self.srs_extents):
            # is_default is True when no explicit bbox is defined for this srs
            # use layer extent
            if extent.is_default:
                bbox = layer.extent.bbox_for(SRS(srs))
            elif layer.extent.is_default:
                bbox = extent.bbox_for(SRS(srs))
            else:
                # Use intersection of srs_extent and layer.extent.
                bbox = extent.intersection(layer.extent).bbox_for(SRS(srs))

            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, srs)

            if srs in self.srs:
                yield srs, bbox

        # add native srs
        layer_srs_code = layer.extent.srs.srs_code
        if layer_srs_code not in self.srs_extents:
            bbox = layer.extent.bbox
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, layer_srs_code)
            if layer_srs_code in self.srs:
                yield layer_srs_code, bbox
Esempio n. 3
0
    def layer_srs_bbox(self, layer, epsg_axis_order=False):
        for srs, extent in iteritems(self.srs_extents):
            # is_default is True when no explicit bbox is defined for this srs
            # use layer extent
            if extent.is_default:
                bbox = layer.extent.bbox_for(SRS(srs))
            elif layer.extent.is_default:
                bbox = extent.bbox_for(SRS(srs))
            else:
                # Use intersection of srs_extent and layer.extent.
                bbox = extent.intersection(layer.extent).bbox_for(SRS(srs))

            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, srs)

            if srs in self.srs:
                yield srs, bbox

        # add native srs
        layer_srs_code = layer.extent.srs.srs_code
        if layer_srs_code not in self.srs_extents:
            bbox = layer.extent.bbox
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, layer_srs_code)
            if layer_srs_code in self.srs:
                yield layer_srs_code, bbox
Esempio n. 4
0
    def layer_srs_bbox(self, layer, epsg_axis_order=False):
        layer_srs_code = layer.extent.srs.srs_code
        for srs in self.bbox_srs:
            bbox = layer.extent.bbox_for(SRS(srs))
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, srs)
            yield srs, bbox

        # add native srs
        if layer_srs_code not in self.bbox_srs:
            bbox = layer.extent.bbox
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, layer_srs_code)
            yield layer_srs_code, bbox
Esempio n. 5
0
    def layer_srs_bbox(self, layer, epsg_axis_order=False):
        layer_srs_code = layer.extent.srs.srs_code
        for srs in self.bbox_srs:
            bbox = layer.extent.bbox_for(SRS(srs))
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, srs)
            yield srs, bbox

        # add native srs
        if layer_srs_code not in self.bbox_srs:
            bbox = layer.extent.bbox
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, layer_srs_code)
            yield layer_srs_code, bbox
Esempio n. 6
0
    def layer_srs_bbox(self, layer, epsg_axis_order=False):
        layer_srs_code = layer.extent.srs.srs_code
        for srs, extent in iteritems(self.srs_extents):
            if extent.is_default:
                bbox = layer.extent.bbox_for(SRS(srs))
            else:
                bbox = extent.bbox_for(SRS(srs))

            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, srs)
            yield srs, bbox

        # add native srs
        if layer_srs_code not in self.srs_extents:
            bbox = layer.extent.bbox
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, layer_srs_code)
            yield layer_srs_code, bbox
Esempio n. 7
0
    def layer_srs_bbox(self, layer, epsg_axis_order=False):
        layer_srs_code = layer.extent.srs.srs_code
        for srs, extent in self.srs_extents.iteritems():
            if extent.is_default:
                bbox = layer.extent.bbox_for(SRS(srs))
            else:
                bbox = extent.bbox_for(SRS(srs))

            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, srs)
            yield srs, bbox

        # add native srs
        if layer_srs_code not in self.srs_extents:
            bbox = layer.extent.bbox
            if epsg_axis_order:
                bbox = switch_bbox_epsg_axis_order(bbox, layer_srs_code)
            yield layer_srs_code, bbox
Esempio n. 8
0
    def layer_bbox_srs(self, elem, parent_layer=None):
        bbox_srs = {}

        bbox_srs_elems = self.findall(elem, 'BoundingBox')
        if len(bbox_srs_elems) > 0:
            for bbox_srs_elem in bbox_srs_elems:
                srs = bbox_srs_elem.attrib['CRS']
                bbox = (bbox_srs_elem.attrib['minx'],
                        bbox_srs_elem.attrib['miny'],
                        bbox_srs_elem.attrib['maxx'],
                        bbox_srs_elem.attrib['maxy'])
                bbox = [float(x) for x in bbox]
                bbox = switch_bbox_epsg_axis_order(bbox, srs)
                bbox_srs[srs] = bbox
        elif parent_layer:
            bbox_srs = parent_layer['bbox_srs']

        return bbox_srs
Esempio n. 9
0
    def layer_bbox_srs(self, elem, parent_layer=None):
        bbox_srs = {}

        bbox_srs_elems = self.findall(elem, 'BoundingBox')
        if len(bbox_srs_elems) > 0:
            for bbox_srs_elem in bbox_srs_elems:
                srs = bbox_srs_elem.attrib['CRS']
                bbox = (
                    bbox_srs_elem.attrib['minx'],
                    bbox_srs_elem.attrib['miny'],
                    bbox_srs_elem.attrib['maxx'],
                    bbox_srs_elem.attrib['maxy']
                )
                bbox = [float(x) for x in bbox]
                bbox = switch_bbox_epsg_axis_order(bbox, srs)
                bbox_srs[srs] = bbox
        elif parent_layer:
            bbox_srs = parent_layer['bbox_srs']

        return bbox_srs