Explorar o código

removed some OGR dependencies, logic moved to OWSlib

Jachym Cepicky %!s(int64=13) %!d(string=hai) anos
pai
achega
063dcedc0a
Modificáronse 2 ficheiros con 23 adicións e 24 borrados
  1. 6 0
      OWS.py
  2. 17 24
      wfs/__init__.py

+ 6 - 0
OWS.py

@@ -320,6 +320,12 @@ class OWS:
 
     def createLayerDefinitionFile(self, name,
             templatefile,time="",target=None):
+            """
+            Depreacted
+
+            to be removed
+
+            """
 
             layerurl = self.getLayerUrl()
             defFileName = None

+ 17 - 24
wfs/__init__.py

@@ -19,7 +19,6 @@ class WFS(OWS):
 
     service = "WFS"
     wfsns = "http://www.opengis.net/wfs"
-    layerDefFile = None
     lyrobj = None
     wfs = None
     cache = False # do not cache by default
@@ -297,10 +296,6 @@ class WFS(OWS):
         if mapobj.numlayers:
             return mapobj
 
-        self.layerDefFile = self.createLayerDefinitionFile("wfs",
-                os.path.join( os.path.dirname(__file__), "templates",'wfs.xml'))
-
-        ds = ogr.Open(self.layerDefFile)
 
         self.setMapName(mapobj)
 
@@ -341,24 +336,15 @@ class WFS(OWS):
             lyrobj.setConnectionType(mapscript.MS_OGR,'')
             lyrobj.data = re.sub(r".*:","",name)
             crs = self.__getLayerCrs(layer.crsOptions)
-            if not(crs):
-                crs = Crs("epsg:4326")
-            if ds:
-                ogrLayer = ds.GetLayerByName(name)
-                extent = self.getLayerExtent(layer,crs)
-                if extent:
-                    lyrobj.setMetaData("wms_extent","%s %s %s %s" % \
-                            (extent[0],extent[1],extent[2],extent[3]))
-                    lyrobj.setMetaData("wfs_extent","%s %s %s %s" % \
-                            (extent[0],extent[1],extent[2],extent[3]))
-                lyrobj.type = self._getLayerType(ogrLayer)
-            else:
-                mapobj.removeLayer(mapobj.numlayers-1)
-                logging.debug("No ogrDataSource found")
-                continue
+            extent = layer.boundingBox
+            if extent:
+                lyrobj.setMetaData("wms_extent","%s %s %s %s" % \
+                        (extent[0],extent[1],extent[2],extent[3]))
+                lyrobj.setMetaData("wfs_extent","%s %s %s %s" % \
+                        (extent[0],extent[1],extent[2],extent[3]))
+            lyrobj.type = self._getLayerType(layer)
 
             lyrobj.setProjection(crs.getcode())
-            #lyrobj.setProjection(layer.crsOptions[0].getcode())
 
             lyrobj.dump = mapscript.MS_TRUE 
             lyrobj.template = "foo"
@@ -423,11 +409,18 @@ class WFS(OWS):
             wkbPolygon25D = -2147483645
             wkbUnknown = 0
         """
-
-        geomType = layer.GetGeomType()
+        
+        
+        featureFile = open(os.path.join(self.cachedir,"feature.gml"),"w")
+        featureFile.write(self.capabilities.getfeature( layer.id, count=1).read())
+        featureFile.close()
+        
+        ds = ogr.Open(featureFile.name)
+        ogrlayer = ds.GetLayer()
+        geomType = ogrlayer.GetGeomType()
         if geomType == 0: # unknown
             # brutal force way
-            f = layer.GetNextFeature()
+            f = ogrlayer.GetNextFeature()
             if f:
                 gr = f.GetGeometryRef()
                 geomType = gr.GetGeometryType()