GIS之家

愿大家在GIS的海洋里自由遨游

导航

[转帖]ArcEngine的符号化

Posted on 2008-06-20 00:08  雨衣blog  阅读(952)  评论(0编辑  收藏  举报
[转帖]ArcEngine的符号化
[ 2008-6-11 10:23:00 | By: 月夜随风 ]

0
推荐感谢:ButterflyIsland

创建Style文件

利用ArcMap中的Style Manage可以制作我们自己的style文件,ArcMap使用的符号文件扩展名是*.style。


将Style文件转成ServerStyle文件

ArcGIS Engine无法打开style文件,它支持的符号文件扩展名是*.serverstyle。在\ArcGis\DeveloperKit\tools目录下有一个工具MakeServerStyleSet.exe用于将style文件转成serverstyle文件。必须将要转换的Style文件放到\ArcGIS\bin\Styles目录下,利用转换工具转换这个目录下的所有style文件,这样转换得到的serverstyle文件才有效。放在其他目录下转换后的serverstyle文件都是空文件,ArcGIS Engine从里面读不到符号项。


程序中读取ServerStyle文件



Public Sub ReadMarkerSymbolStyle()Sub ReadMarkerSymbolStyle(ByVal serverStyleFile As String)
Dim pStyleGallery As IStyleGallery = New ServerStyleGallery()
Dim pStyleGalleryStorage As IStyleGalleryStorage = pStyleGallery
pStyleGalleryStorage.TargetFile = serverStyleFile
'遍历文件中的Marker Symbol
Dim pEnumSGItem As IEnumStyleGalleryItem = pStyleGallery.Items("Marker Symbols", "", "")
pEnumSGItem.Reset()
Dim pStyleItem As IStyleGalleryItem = pEnumSGItem.Next
While Not pStyleItem Is Nothing
Debug.WriteLine("Item Name:" & pStyleItem.Name & " Item Category:" & pStyleItem.Category)
pStyleItem = pEnumSGItem.Next
End While
'释放对象,否则下次调用时会发生异常
System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSGItem)
End Sub