public override bool Renderer(string strParams_renderer = "") { bool bResult = true; _FloderRenderer = _FloderOutput; if (base.Renderer(strParams_renderer)) { //载入结果栅格 if (_dstRasterFile == "") { return(true); } GdalRead_TIFF gdalRead_TIFF = new GdalRead_TIFF(); gdalRead_TIFF.InitDataset(_dstRasterFile, 0, false); string fileName = _Datas["title"] + _dtTag; IRasterRenderer pRender = (IRasterRenderer)Renderer_Factory.CreateRenderer(emRenderType.Classify, gdalRead_TIFF); pRender.InitParams(_Renderer); pRender.Render(); pRender.Output(_FloderRenderer, fileName); //图例处理等 JObject renderInfo = (JObject)pRender.ToRendererStr(false); _Result["renderer"] = renderInfo; _Renderer = (JObject)_Params["rendererParms"]; if (_Renderer != null) { //创建图例 if (Convert.ToBoolean(_Renderer["rendererOutputLegend"])) { bResult = bResult && pRender.Create_Legend(_FloderRenderer, "Legend_" + _Datas["title"]); if (bResult) { _Result["renderer"]["renderer"]["nameLegend"] = pRender.Image_Legend.Name + pRender.Image_Legend.Suffix; } } //创建发布图 if (Convert.ToBoolean(_Renderer["rendererOutputPublish"])) { //含图例的渲染图 ImageObj _Image = pRender.Image, _Image_legend = pRender.Image_Legend; if (_Image_legend == null) { bResult = bResult && pRender.Create_Legend(_FloderRenderer, "Legend_" + _Datas["title"]); _Image_legend = pRender.Image_Legend; } ImageColor pColor = new ImageColor("#192734"); ImageObj _Image_Scale = pRender.Create_Scale(); ImageObj img = new ImageObj(_Image.Width + _Image_legend.Width, _Image.Height > _Image_legend.Height ? _Image.Height : _Image_legend.Height); img.DrawImage(_Image_legend.Width, 0, _Image, 1); img.DrawImage(0, (int)((img.Height - _Image_legend.Height)), _Image_legend, 1); img.DrawImage((int)(_Image_legend.Width * 1.2), (int)((img.Height - _Image_Scale.Height * 1.2)), _Image_Scale, 1); img.DrawPolygon(0, 20, pColor.Color, 1, img.Width - 1, img.Height - 21); img.Name = fileName + "_publish"; bResult = bResult && img.Save(_FloderRenderer); if (bResult) { _Result["renderer"]["renderer"]["namePublish"] = img.Name + img.Suffix; } } } } return(true); }