def getBBOXKVP(self, bbox, typename): """Formate bounding box for KVP request type (HTTP GET) @param bbox: (minx,miny,maxx,maxy[,srs]) @type bbox: List @param typename: feature name @type typename: String @returns: String properly formated according to version and coordinate reference system """ srs = None # srs of the bbox is specified in the bbox as fifth paramter if len(bbox) == 5: srs = Crs(bbox[4]) # take default srs else: srs = self.contents[typename[0]].crsOptions[0] # 1.1.0 and 2.0.0 have same encoding if self.version in ["1.1.0", "2.0.0"]: # format bbox parameter if srs.encoding == "urn": if srs.axisorder == "yx": return "%s,%s,%s,%s,%s" % ( bbox[1], bbox[0], bbox[3], bbox[2], srs.getcodeurn(), ) else: return "%s,%s,%s,%s,%s" % ( bbox[0], bbox[1], bbox[2], bbox[3], srs.getcodeurn(), ) else: return "%s,%s,%s,%s,%s" % ( bbox[0], bbox[1], bbox[2], bbox[3], srs.getcode(), ) # 1.0.0 else: return "%s,%s,%s,%s,%s" % ( bbox[0], bbox[1], bbox[2], bbox[3], srs.getcode(), )
def getSRS(self, srsname, typename): """Returns None or Crs object for given name @param typename: feature name @type typename: String """ if not isinstance(srsname, Crs): srs = Crs(srsname) else: srs = srsname try: index = self.contents[typename].crsOptions.index(srs) # Return the Crs string that was pulled directly from the # GetCaps document (the 'id' attribute in the Crs object). return self.contents[typename].crsOptions[index] except ValueError: options = ", ".join( [crs.id for crs in self.contents[typename].crsOptions]) log.warning( "Requested srsName %r is not declared as being " "allowed for requested typename %r. " "Options are: %r.", srs.getcode(), typename, options, ) return None
def getBBOXPost(self, bbox, typename): """Format bounding box for Post requests @param bbox: (minx,miny,maxx,maxy[,srs]) @type bbox: List @param typename: feature name @type typename: String @returns: String properly formated according to version and coordinate reference system """ srs = None # srs of the bbox is specified in the bbox as fifth paramter if len(bbox) == 5: srs = Crs(bbox[4]) # take default srs else: srs = self.contents[typename[0]].crsOptions[0] formatted_bbox = [bbox[0], bbox[1], bbox[2], bbox[3]] if self.version in ["1.1.0", "2.0.0"]: if srs.axisorder == "yx" and srs.encoding == "urn": formatted_bbox = [bbox[1], bbox[0], bbox[3], bbox[2]] if self.version == "1.1.0": formatted_bbox.append(srs.getcodeurn()) return formatted_bbox if self.version == "2.0.0": formatted_bbox.append(srs.getcodeuri1()) return formatted_bbox else: formatted_bbox.append(srs.getcode()) return formatted_bbox
def getBBOXKVP (self,bbox,typename): """Formate bounding box for KVP request type (HTTP GET) @param bbox: (minx,miny,maxx,maxy[,srs]) @type bbox: List @param typename: feature name @type typename: String @returns: String properly formated according to version and coordinate reference system """ srs = None # srs of the bbox is specified in the bbox as fifth paramter if len(bbox) == 5: srs = Crs(bbox[4]) # take default srs else: srs = self.contents[typename[0]].crsOptions[0] # 1.1.0 and 2.0.0 have same encoding if self.version in ["1.1.0","2.0.0"]: # format bbox parameter if srs.encoding == "urn" : if srs.axisorder == "yx": return "%s,%s,%s,%s,%s" % \ (bbox[1],bbox[0],bbox[3],bbox[2],srs.getcodeurn()) else: return "%s,%s,%s,%s,%s" % \ (bbox[0],bbox[1],bbox[2],bbox[3],srs.getcodeurn()) else: return "%s,%s,%s,%s,%s" % \ (bbox[0],bbox[1],bbox[2],bbox[3],srs.getcode()) # 1.0.0 else: return "%s,%s,%s,%s,%s" % \ (bbox[0],bbox[1],bbox[2],bbox[3],srs.getcode())
def getSRS(self, srsname, typename): """Returns None or Crs object for given name @param typename: feature name @type typename: String """ if not isinstance(srsname, Crs): srs = Crs(srsname) else: srs = srsname try: index = self.contents[typename].crsOptions.index(srs) # Return the Crs string that was pulled directly from the # GetCaps document (the 'id' attribute in the Crs object). return self.contents[typename].crsOptions[index] except ValueError: options = ", ".join(map(lambda x: x.id, self.contents[typename].crsOptions)) log.warning("Requested srsName '%s' not available for requested typename '%s'. \ Options are: %s. " % (srs.getcode(), typename, options)) return None