def set_ows_request_from_query_string(self, query_string): log = logging.getLogger(__name__) ows_request = OWSRequest() # loadParamsFromURL causes a seg fault if passed an empty string. # Don't pass it an empty string... if ( ( type(query_string) == str ) and ( query_string.strip() != '' ) ): ows_request.loadParamsFromURL(query_string) if (ows_request.getValueByName('LAYER') is None): ows_request.addParameter('LAYER', self.layer_name) log.debug("Setting OWS paramater LAYER as not already set. Set to: %s", self.layer_name) if (ows_request.getValueByName('LAYERS') is None): ows_request.addParameter('LAYERS', self.layer_name) log.debug("Setting OWS paramater LAYERS as not already set. Set to: %s", self.layer_name) self.ows_request = ows_request
def set_ows_request_from_query_string(self, query_string): log = logging.getLogger(__name__) ows_request = OWSRequest() # loadParamsFromURL causes a seg fault if passed an empty string. # Don't pass it an empty string... if ((type(query_string) == str) and (query_string.strip() != '')): ows_request.loadParamsFromURL(query_string) if (ows_request.getValueByName('LAYER') is None): ows_request.addParameter('LAYER', self.layer_name) log.debug( "Setting OWS paramater LAYER as not already set. Set to: %s", self.layer_name) if (ows_request.getValueByName('LAYERS') is None): ows_request.addParameter('LAYERS', self.layer_name) log.debug( "Setting OWS paramater LAYERS as not already set. Set to: %s", self.layer_name) self.ows_request = ows_request
#!/usr/bin/env python # TODO - figure out how to add styles and layers in python... # mapscript.styleObj # mapscript.layerObj from mapscript import mapObj, OWSRequest m = mapObj('../mapfile_config/world.map') e = m.extent bbox = '%s,%s,%s,%s' % (e.minx,e.miny,e.maxx,e.maxy) req = OWSRequest() # The OWSRequest only wants strings... req.setParameter("request", 'GetMap') req.setParameter("bbox", bbox) req.setParameter("width", '600') req.setParameter("height", '300') req.setParameter("srs", 'epsg:4326') req.setParameter("format", 'image/png') req.setParameter("layers", 'world') m.loadOWSParameters(req) image = m.draw() image.save('world_mapscript_mapfile.png') legend = m.drawLegend() legend.save('world_mapscript_legend.png') scalebar = m.drawScalebar() scalebar.save('world_mapscript_scalebar.png') sld = open('world_mapscipt_sld.xml','w') sld.write(m.generateSLD()) sld.close() # will save relative to mapfile by default m.saveMapContext('../mapscript/world_mapscript_mapcontext.xml')
def wms(request): from mapscript import mapObj, OWSRequest wms = mapObj(settings.MAPSERVER_MAPFILE) req = OWSRequest() mime = request.GET['FORMAT'] req.setParameter("bbox", request.GET['BBOX']) req.setParameter("width", request.GET['WIDTH']) req.setParameter("height", request.GET['HEIGHT']) req.setParameter("srs", request.GET['SRS']) req.setParameter("format", mime) req.setParameter("layers", request.GET['LAYERS']) req.setParameter("styles", request.GET['STYLES']) req.setParameter("request", "GetMap") wms.loadOWSParameters(req) image = wms.draw().getBytes() response = HttpResponse() response['Content-length'] = len(image) response['Content-Type'] = mime response.write(image) return response
#!/usr/bin/env python # TODO - figure out how to add styles and layers in python... # mapscript.styleObj # mapscript.layerObj from mapscript import mapObj, OWSRequest m = mapObj('../mapfile_config/world.map') e = m.extent bbox = '%s,%s,%s,%s' % (e.minx, e.miny, e.maxx, e.maxy) req = OWSRequest() # The OWSRequest only wants strings... req.setParameter("request", 'GetMap') req.setParameter("bbox", bbox) req.setParameter("width", '600') req.setParameter("height", '300') req.setParameter("srs", 'epsg:4326') req.setParameter("format", 'image/png') req.setParameter("layers", 'world') m.loadOWSParameters(req) image = m.draw() image.save('world_mapscript_mapfile.png') legend = m.drawLegend() legend.save('world_mapscript_legend.png') scalebar = m.drawScalebar() scalebar.save('world_mapscript_scalebar.png') sld = open('world_mapscipt_sld.xml', 'w') sld.write(m.generateSLD()) sld.close() # will save relative to mapfile by default m.saveMapContext('../mapscript/world_mapscript_mapcontext.xml')