创建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
将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