默认头像
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数72
  • QQ
  • 铜币387枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3380回复:12

AO怎样由featureclass得到数据源的位置

楼主#
更多 发布于:2005-01-31 16:50

如果连的是数据库的话,我用以下代码,运行通过,结果是正确的:(可直接看最后红色的代码)

   Dim pWorkspaceFactory As IWorkspaceFactory     Set pWorkspaceFactory = New AccessWorkspaceFactory     Dim pPropertySet As IPropertySet     Set pPropertySet = New PropertySet     pPropertySet.SetProperty "DATABASE", F:\arcgis\DeveloperKit\samples\data\usa\usa.mdb"     Dim pWorkspace As IWorkspace     Set pWorkspace = pWorkspaceFactory.Open(pPropertySet, Me.hWnd)     Dim pEnumDataSet  As IEnumDataset      '    Set pEnumDataSet = pWorkspace.Datasets(esriDTFeatureClass)     Set pEnumDataSet = pWorkspace.Datasets(esriDTFeatureDataset)     Dim pFeatureDataset As IFeatureDataset     Set pFeatureDataset = pEnumDataSet.Next              Dim pfeatclass As IFeatureClass     Set pfeatclass = pFeatureDataset.Subsets.Next

    ''QI to IDataset to prove you have a featureclass...     Dim pdataset As IDataset     Set pdataset = pfeatclass     Dim player As IFeatureLayer     Set player = New FeatureLayer            

   Set player.FeatureClass = pfeatclass                 MapControl1.AddLayer player              Dim aa As String '    Dim pPropertySet As IPropertySet     Set pPropertySet = pdataset.Workspace.ConnectionProperties     aa = pPropertySet.GetProperty("DATABASE")             Text1.Text = aa ; "::" ; pdataset.Name

如果我打开的是一个shp文件,怎么样得到呢?

直接一点就是

   Set pPropertySet = pdataset.Workspace.ConnectionProperties     aa = pPropertySet.GetProperty("???")

“???”这个参数是什么?

[此贴子已经被作者于2005-1-31 16:52:32编辑过]
喜欢0 评分0
http://www.geostar.com.cn(吉奥 公司) http://www.waterblue.com.cn(水之灵,蓝之静 个人)
默认头像
伴读书童
伴读书童
  • 注册日期2004-09-16
  • 发帖数120
  • QQ
  • 铜币638枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-04-02 17:09

谢谢10楼指点!!!!!

我也许很笨,但是我一直再努力,没有放弃!
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-04-19
  • 发帖数118
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-03-09 16:23

我的想法是

通过 IFeatureClass -》得到IFeatureClassName--》得到文件名

然后通过IFeatureClassName 得到 IWorkSpaceName

通过IWorkSpaceName 得到目录,

这样就可以了。 不知道对不多。:)

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数72
  • QQ
  • 铜币387枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-02-28 11:12
谢谢了!
http://www.geostar.com.cn(吉奥 公司) http://www.waterblue.com.cn(水之灵,蓝之静 个人)
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-05-08
  • 发帖数135
  • QQ
  • 铜币543枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-02-18 17:46

想得到楼主的答案可以这样写代码:

假设pFtCls是需要得到数据源路径的IFeatureClass

Dim pDataset as IDataset

Dim strPath as String

set pDataset = pFtCls

strPath = pDataset .Workspace .PathName

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2003-08-19
  • 发帖数88
  • QQ
  • 铜币230枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2005-02-02 20:54

打开的是一个shp文件也是使用  aa = pPropertySet.GetProperty("DATABASE")

举报 回复(0) 喜欢(0)     评分
默认头像
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
6楼#
发布于:2005-02-02 15:43
shp和目录没关系的,所以不能这样来获取,文件路径很容易获取啊,和其他文件没区别的
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数72
  • QQ
  • 铜币387枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2005-02-02 12:21

谢谢了!

我是想在打开一个shp文件后,由featureclass得到该文件的位置,用文本框显示出来,看来只能在打开文件的时候,动点脑筋了。

http://www.geostar.com.cn(吉奥 公司) http://www.waterblue.com.cn(水之灵,蓝之静 个人)
举报 回复(0) 喜欢(0)     评分
默认头像
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
8楼#
发布于:2005-02-01 17:52

偶也不知道楼猪在做什么,:)

GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
默认头像
论坛版主
论坛版主
  • 注册日期2003-08-01
  • 发帖数281
  • QQ
  • 铜币1027枚
  • 威望3点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-02-01 17:14
打开SHP,无法用propertySet
不要看我噢
举报 回复(0) 喜欢(0)     评分
上一页
默认头像

返回顶部