shixcn
外卖仔
外卖仔
  • 注册日期2003-11-02
  • 发帖数73
  • QQ
  • 铜币180枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
阅读:4466回复:11

[求助] AE 中如何打开和保存lyr文件?

楼主#
更多 发布于:2005-08-09 23:48
<P>    各位大虾,sxd文档好像无法新建和保存 ,那位可以告诉小弟如何新建和保存中间格式Lyr文件,先谢谢了</P>
喜欢0 评分0
dfsh1983
路人甲
路人甲
  • 注册日期2005-08-03
  • 发帖数23
  • QQ
  • 铜币195枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-11-03 21:22
<P>那应如何保存呢?哪位人兄知道啊?</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2005-09-06 11:42
<P 0cm 0cm 0pt; TEXT-INDENT: 17.95pt; mso-char-indent-count: 1.71">本例实现的是如何新建一个指向Shape文件的lyr文件。利用IGxLayer,IGxFile和IFeatureLayer接口来实现该功能。通过GxLayer类实现IGxLayer接口对象。通过GxFile类实现IGxFile接口对象<p></p></P>
<P 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: 9.0pt 18.0pt list 21.0pt">l 程序说明<p></p></P>
<P 0cm 0cm 0pt 0.1pt; TEXT-INDENT: 17.95pt; mso-char-indent-count: 1.71; tab-stops: 9.0pt 27.0pt">函数OpenFeatureClass打开用来新建lyr文件的shape文件。参数sPath,sName指定shape文件的位置。过程CreateLyrFileFromShape创建lyr文件。<p></p></P>
<P 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: 9.0pt 18.0pt list 21.0pt">l 代码<p></p></P>
<TABLE #cccccc; MARGIN: auto auto auto 9.05pt; BORDER-COLLAPSE: collapse; mso-padding-alt: 0cm 4.95pt 0cm 4.95pt" cellSpacing=0 cellPadding=0 border=0>

<TR yes">
<TD #ece9d8; PADDING-RIGHT: 4.95pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 4.95pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 354.4pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=473>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">Option Explicit<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt"><p> </p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">Private Sub CreateLyrFileFromShape(sLyrFilePath As String, sShpFilePath As String, _<p></p></P>
<P 0cm 0cm 0pt 126pt; TEXT-INDENT: 16pt; mso-char-indent-count: 2.0; mso-para-margin-left: 12.0gd; mso-line-height-alt: 0pt">sShpFileName As String)<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">On Error GoTo ErrorHandler:<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim pGxLayer        As IGxLayer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim pGxFile         As IGxFile<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim pFeatureLayer   As IFeatureLayer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim pMxDocument     As IMxDocument<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt"><p> </p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pGxLayer = New GxLayer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pGxFile = pGxLayer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    pGxFile.Path = sLyrFilePath<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    <p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pFeatureLayer = New FeatureLayer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pFeatureLayer.FeatureClass = OpenFeatureClass(sShpFilePath, sShpFileName)<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    If pFeatureLayer.FeatureClass Is Nothing Then<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">        GoTo ErrorHandler:<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    End If<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    <p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    pFeatureLayer.Name = "myCountryLyr"<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pGxLayer.Layer = pFeatureLayer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    <p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pMxDocument = ThisDocument<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    pMxDocument.FocusMap.AddLayer pGxLayer.Layer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">   <p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pGxLayer = Nothing<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pGxFile = Nothing<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Exit Sub<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">ErrorHandler:<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    MsgBox Err.Description<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">End Sub<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt"><p> </p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">Function OpenFeatureClass(ByVal sPath As String, ByVal sName As String) As IFeatureClass<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">On Error GoTo ErrorHandler:<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim pWorkspaceFactory As IWorkspaceFactory<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pWorkspaceFactory = New ShapefileWorkspaceFactory<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt"><p> </p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim pFeatureWorkspace As IFeatureWorkspace<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(sPath, 0)<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set OpenFeatureClass = pFeatureWorkspace.OpenFeatureClass(sName)<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Exit Function<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">ErrorHandler:<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set OpenFeatureClass = Nothing<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">End Function<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt"><p> </p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">Private Sub UIButtonControl1_Click()<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim sDataFilePath   As String<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim pVBProject      As VBProject<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Dim nIndex          As Integer<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    Set pVBProject = ThisDocument.VBProject<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    nIndex = InStrRev(pVBProject.FileName, "\")<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    sDataFilePath = Left(pVBProject.FileName, nIndex) ; "..\..\..\data\"<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    'call AddLayerFileToMap<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">    CreateLyrFileFromShape sDataFilePath ; "myCountry.lyr", sDataFilePath, "WorldCountries"<p></p></P>
<P 0cm 0cm 0pt; mso-line-height-alt: 0pt">End Sub<p></p></P></TD></TR></TABLE>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
bluewood_cn
路人甲
路人甲
  • 注册日期2004-04-19
  • 发帖数118
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-09-06 11:31
<P>lyr 可以被ArcEngine打开。IMapControl2::AddLayerFromFile</P>
<P>但是如何保存我没试过。</P>
举报 回复(0) 喜欢(0)     评分
shixcn
外卖仔
外卖仔
  • 注册日期2003-11-02
  • 发帖数73
  • QQ
  • 铜币180枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
4楼#
发布于:2005-08-31 20:51
<P>谢谢 我试一试看!</P>
举报 回复(0) 喜欢(0)     评分
xiaotirong
路人甲
路人甲
  • 注册日期2004-12-21
  • 发帖数44
  • QQ345131571
  • 铜币278枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-08-31 12:36
<img src="images/post/smile/dvbbs/em01.gif" />关注!
举报 回复(0) 喜欢(0)     评分
gsl1982
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2005-08-31 08:36
使用接口IPersistStream和IXMLStream保存成文件
举报 回复(0) 喜欢(0)     评分
shixcn
外卖仔
外卖仔
  • 注册日期2003-11-02
  • 发帖数73
  • QQ
  • 铜币180枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
7楼#
发布于:2005-08-24 18:34
<P>哦 谢谢了 !看来Sxd不可以保存 lyr 不可以保存 那就只有直接写入Geodatabase了!再次表示感谢</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
8楼#
发布于:2005-08-23 23:59
<P>lyr是arcgis里的文件,AE不支持</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
shixcn
外卖仔
外卖仔
  • 注册日期2003-11-02
  • 发帖数73
  • QQ
  • 铜币180枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
9楼#
发布于:2005-08-23 22:11
?
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部