|
|
@@ -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()
|