| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/usr/bin/env python
- # coding=utf-8
- from OWS import OWS
- import mapscript
- from osgeo import gdal
- from osgeo import osr
- from string import Template
- import os
- import logging
- class WCS(OWS):
- service = "WCS"
- request = '' # GetCapabilies, ...
- def __init__(self,url=None,qstring=None,configFiles=None):
- OWS.__init__(self,url,qstring)
- def makeMap(self,mapfilename=None):
- mapobj = self.getMapObj(mapfilename)
- for layer in self.capabilities.Contents.getchildren():
- name = layer.Identifier.text
- logging.debug("Creating layer %s" % name)
- layerDefFile = self.createLayerDefinitionFile(name,
- os.path.join( os.path.dirname(__file__), "templates",'wcs.xml'))
- ds = gdal.Open(layerDefFile)
- lyrobj = mapscript.layerObj(mapobj)
- lyrobj.name = name
- lyrobj.data = layerDefFile
- lyrobj.title = layer["{%s}%s" % (self.owsNs,"Title")].text
- lyrobj.setMetaData("wms_title",layer["{%s}%s" % (self.owsNs,"Title")].text)
- sr = osr.SpatialReference()
- sr.ImportFromWkt(ds.GetProjection())
- lyrobj.setProjection(sr.ExportToProj4())
- lyrobj.type = mapscript.MS_LAYER_RASTER
- lyrobj.dump = mapscript.MS_TRUE
- lyrobj.template = "foo"
- cls = mapscript.classObj(lyrobj)
- mapscript.styleObj(cls)
- self.saveMapfile(mapobj,mapfilename)
- return mapobj
|