木白林
路人甲
路人甲
  • 注册日期2004-03-19
  • 发帖数319
  • QQ
  • 铜币824枚
  • 威望0点
  • 贡献值0点
  • 银元0个
20楼#
发布于:2005-07-21 10:34
提示IWorkspaceFactory未定义<BR>
心情卡片 一起分享...
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
21楼#
发布于:2005-07-20 11:19
<P>直接调用shape文件是没有问题的,前面已经说过了</P>
<P>既然你用Activebar控件,那菜单应该没问题的啊</P>
<P>下面是修改好的代码,你新建工程,添加一个mapcontrol控件,把下面代码拷贝进去,代码打开c:\1\pt.shp,请先确认有这个文件,路径可以改</P>
<P>Public Sub AddShapeFile()<BR>  Dim pWorkspaceFactory As IWorkspaceFactory<BR>  Dim pFeatureWorkspace As IFeatureWorkspace<BR>  Dim pFeatureLayer As IFeatureLayer<BR>'  Dim pMxDocument As IMxDocument<BR>  Dim pMap As IMap<BR>  <BR>  'Create a new ShapefileWorkspaceFactory object and open a shapefile folder<BR>  Set pWorkspaceFactory = New ShapefileWorkspaceFactory<BR>  Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile("C:\1", 0)<BR>  'Create a new FeatureLayer and assign a shapefile to it<BR>  Set pFeatureLayer = New FeatureLayer<BR>  Set pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass("pt")<BR>  pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName<BR>  'Add the FeatureLayer to the focus map<BR>'  Set pMxDocument = Application.Document<BR>  Set pMap = Form1.MapControl1.ActiveView.FocusMap<BR>  pMap.AddLayer pFeatureLayer<BR>End Sub</P>
<P>Private Sub Form_Load()<BR>  AddShapeFile<BR>End Sub<BR></P>

GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
木白林
路人甲
路人甲
  • 注册日期2004-03-19
  • 发帖数319
  • QQ
  • 铜币824枚
  • 威望0点
  • 贡献值0点
  • 银元0个
22楼#
发布于:2005-07-20 09:29
<br>
<P><a href="attachment/2005-7/20057209273624435.rar">2005-7/20057209273624435.rar</a><BR><BR></P>
<P>就是有关用AE自己做toolbar,看过用AO做的专题地图的显示是用多级的botton来实现的,我现在也想实现这种效果,来实现对shape等文件的调用,原来做过在AE的toolbarcontrol的菜单,但是没有找到能调用shape文件的方法,问了一些朋友,有的说toolbarcontrol不支持打开除了mxd的文件(除非调用做好的dll),还有的朋友说用第三方软件来做菜单实现,看过一些帖子,说自己做toolbar,但是感觉无从下手,我把写的代码一并发给你了,附件的图片是我想实现的效果。代码中我添加了Activebar控件,是用来做界面的第三方软件。类模块里有一个是调用shape的过程,一个是函数。烦劳有空的时候帮我看看,非常感谢!</P><img src="images/post/smile/dvbbs/em02.gif" />
心情卡片 一起分享...
举报 回复(0) 喜欢(0)     评分
木白林
路人甲
路人甲
  • 注册日期2004-03-19
  • 发帖数319
  • QQ
  • 铜币824枚
  • 威望0点
  • 贡献值0点
  • 银元0个
23楼#
发布于:2005-07-19 19:04
麻烦你了,我发给你还是发到论坛上啊?
心情卡片 一起分享...
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
24楼#
发布于:2005-07-19 11:25
实在是难说了,方便的话,把程序打包上来看看
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
木白林
路人甲
路人甲
  • 注册日期2004-03-19
  • 发帖数319
  • QQ
  • 铜币824枚
  • 威望0点
  • 贡献值0点
  • 银元0个
25楼#
发布于:2005-07-15 10:21
mapcontrol1我没有定义啊!这个就是默认的控件名称
心情卡片 一起分享...
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
26楼#
发布于:2005-07-14 13:07
<DIV class=quote><B>以下是引用<I>木白林</I>在2005-7-8 20:46:16的发言:</B><BR>还是提示mapcontrol1没有定义</DIV>
<P>
<P>这个是你自己取的控件名字,不要定义哦,兄弟</P>

GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
木白林
路人甲
路人甲
  • 注册日期2004-03-19
  • 发帖数319
  • QQ
  • 铜币824枚
  • 威望0点
  • 贡献值0点
  • 银元0个
27楼#
发布于:2005-07-13 09:57
郁闷啊!~~~~~~~~~~~~~~~~
心情卡片 一起分享...
举报 回复(0) 喜欢(0)     评分
木白林
路人甲
路人甲
  • 注册日期2004-03-19
  • 发帖数319
  • QQ
  • 铜币824枚
  • 威望0点
  • 贡献值0点
  • 银元0个
28楼#
发布于:2005-07-08 20:46
还是提示mapcontrol1没有定义
心情卡片 一起分享...
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
29楼#
发布于:2005-07-08 15:18
<P>把下面的拷进去吧,应该可以加了吧,你注意下变量的定义了,imap是可以和mapcontrol1.map等同的</P>
<P> Case 0<BR>  Dim pWorkspaceFactory As IWorkspaceFactory<BR>  Dim pFeatureWorkspace As IFeatureWorkspace<BR>  Dim pFeatureLayer As IFeatureLayer<BR> ' Dim pMap As IMap<BR>  <BR>  'Create a new ShapefileWorkspaceFactory object and open a shapefile folder<BR>  Set pWorkspaceFactory = New ShapefileWorkspaceFactory<BR>  Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile("d:\Program Files\ArcGIS\DeveloperKit\Samples\Data\World", 0)<BR>  'Create a new FeatureLayer and assign a shapefile to it<BR>  Set pFeatureLayer = New FEATURELAYER<BR>  Set pFeatureLayer.FeatureClass = pFeatureWorkspace.OpenFeatureClass("Country")<BR>  pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName</P>
<P><BR>  'Add the FeatureLayer to the focus map<BR>  'Set pMap = MapControl1.Map  '这里mapcontrol改成你的控件名字就可以了</P>
<P>  MapControl1.Map.AddLayer pFeatureLayer<BR>      <BR></P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部