利用ArcEngine操作Arcgis中的样式库。

今天在网上溜达,突然看到一个网友在使用ArcEngine开发的过程中遇到一个这样的问题。

问题内容如下:

 private void button1_Click(object sender, EventArgs e)
        {
            IStyleGallery pStyleGallery = new ServerStyleGalleryClass();
            IRgbColor pRgbColor = new RgbColorClass();
            pRgbColor.Red = 224;
            pRgbColor.Green = 160;
            pRgbColor.Blue = 158;
            IStyleGalleryItem pStyleItem = new ServerStyleGalleryItemClass();
            pStyleItem.Name = "Rose";
            pStyleItem.Category = "Default";
            pStyleItem.Item = pRgbColor;
            IStyleGalleryStorage pStyleStorage;
            pStyleStorage = pStyleGallery as IStyleGalleryStorage;
            pStyleStorage.TargetFile = @"D:/temp/test.style";
            pStyleGallery.AddItem(pStyleItem);
        }
用此段代码倒是在目标文件夹下创建了一个test.style的文件,可是在ArcMap的tool-style中就是无法查看,这是怎么回事呢?高手帮我解答一下吧,谢谢啦~~~

分析解答:

     1. 在ArcGis桌面产品中样式库文件有两种,分别为.style和.ServerStyle。

    .ServerStyle主要用ArcEngine开发。

    由于ArcEngine可以看做是从ArcObject中分离处理的出来的,基于ArcObject开发的程序可以操作.style和.ServerStyle这两种样式文件。但使用ArcGis Desktop桌面程序是没办法访问.ServerStyle文件的,除非进行二次开发。

      2.从上述代码中ServerStyleGalleryClass对象可以看出,我们操作的样式文件实际是.ServerStyle,而不是.style。虽然这位程序员创建了D:/temp/test.style 文件但文件的实体并不是.style文件,而是.ServerStyle文件,所有要想通过样式库,看到刚才添加的符号,必须基于AE或AO开发出相应的符号浏览器控件才可以看到。

     当然也可以将.ServerStyle文件转换为.style文件后,通过ArcGis桌面程序看到。

 

发布了51 篇原创文章 · 获赞 9 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/mymhj/article/details/6573498