在ArcGIS Server中调用ESRI自带符号库的一个问题

        在ArcGIS Engine中,如果要调用ESRI自带符号库中的一个符号,比如图中的ColorRamp:

        可以利用以下代码来得到:
IStyleGallery pSG=new ServerStyleGalleryClass();
pSG.ImportStyle(“ESRI.ServerStyle”);
IEnumStyleGalleryItem pESGI = pSG.get_Items(“Color Ramps”, null, null);
IStyleGalleryItem pSGI=pESGI.Next();
while(pSGI!=null)
{
if(“Pastels”==pSGI.Name)//pastels是该colorramp的名字
break;
pSGI=pESGI.Next();
}
IColorRamp pColorRamp=pSGI.Item as IColorRamp;

        但在AGS中发现,执行完IStyleGalleryItem pSGI=PESGI.Next();后,pSGI始终为null,但pSG.ClassCount却为22,表明已经导入了符号库文件,原因后面。但pSG.get_Items()方法执行时也不报错,且在engine下都没有问题……最后发现,在pSG.get_Items()之后,pESGI.Next();之前,插入一句pESGI.Reset()问题就解决了,比较无厘头。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>