本來這個(gè)問題其實(shí)很簡單,在Flyingis的blog里面,它給的是一個(gè)用IMapServer的解決方案,但是由于要用到AO,所以我就沒打算用它,因?yàn)槲椰F(xiàn)在做的系統(tǒng)我盡可能的只利用Common API和Datasource Specific API,不想去與ServerContext打交道。
然后這樣實(shí)現(xiàn)了:
IMapFunctionality mapFunctionality = mapResource.CreateFunctionality(typeof(IMapFunctionality), "MapDrawer") as IMapFunctionality;
mapFunctionality.DisplaySettings = new ESRI.ArcGIS.ADF.Web.DisplaySettings();
mapFunctionality.DisplaySettings.Visible = true;
mapFunctionality.DisplaySettings.ImageDescriptor = new ESRI.ArcGIS.ADF.Web.ImageDescriptor(ESRI.ArcGIS.ADF.Web.ImageFormat.PNG24, width, height);
//渲染到圖片
ESRI.ArcGIS.ADF.Web.MapImage mi = mapFunctionality.DrawExtent(((IMapResource)mapFunctionality.Resource).MapInformation.DefaultExtent);
return mi.Url;
但是這URL就老不出來。不管怎么檢查都找不到原因。
察看了MapResourceLocal,Capability也可以使用URL的方式,隨后我就很納悶了。。。
然后看到Functionality有這么個(gè)項(xiàng)目MapFunctionality.DisplaySettings.ImageDescriptor.ReturnMimeData
然后我就好奇心來了,如果把ReturnMimeData設(shè)置為False,既然它不能給我個(gè)URL,那把這個(gè)再禁掉,它還渲染啥呢?
結(jié)果令我大跌眼鏡,沒想到在關(guān)掉MimeData以后,URL就出來了。。。我才發(fā)現(xiàn)我完全被ArcCatalog里面的服務(wù)配置選項(xiàng)中的MIME+URL的描述給迷惑了。。。