ArcGis 里图片如何存到ArcSDE里?谢谢了

javaokay 2007-07-16 09:22:06
我有一个这样的问题:
因为存放在Geodatabase 中的一个要素类的每一个要素都对应着一副或几副图片(*.JPG|*.bmp),用户要求在点击查询某个要素的属性信息时,把该与要素相关的图片也显示出来。我是否可以在该要素类中添加一个字段(如:"图片",类型为esrifieldtypeBlob),然后把相关的图片存储在这个字段里。可以这样做吗?怎样做?如:1,怎样给"图片"字段赋值,也就是怎样把图片存储到Geodatabase中去?2,怎样把与要素对应的图片显示出来?
...全文
328 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
anonymousvampire 2007-07-17
  • 打赏
  • 举报
回复
把你的图片存为byte数组,然后用IMemoryBlobStreamVariant接口实现,不推荐在属性中存贮大量图片:
Private Sub test2()
'存数据
Dim pMemBlobStrm As IMemoryBlobStreamVariant
Set pMemBlobStrm = New MemoryBlobStream
pMemBlobStrm.ImportFromVariant byteArray
Dim pMxDoc As IMxDocument
Dim pFtrLyr As IFeatureLayer
Dim pFtrCls As IFeatureClass
Dim pFtrCsr As IFeatureCursor
Dim pFtrBfr As IFeatureBuffer
Set pMxDoc = ThisDocument
Set pFtrLyr = pMxDoc.FocusMap.Layer(0)
Set pFtrCls = pFtrLyr.FeatureClass
Set pFtrBfr = pFtrCls.CreateFeatureBuffer
Set pFtrCsr = pFtrCls.Insert(True)
pFtrBfr.Value(5) = pMemBlobStrm
pFtrCsr.InsertFeature pFtrBfr
pFtrCsr.Flush

'取数据
Dim v As Variant
Dim pftr As IFeature
Set pftr = pFtrCls.GetFeature(10)
Set pMemBlobStrm = pftr.Value(5)
pMemBlobStrm.ExportToVariant v

End Sub

letheanwater 2007-07-17
  • 打赏
  • 举报
回复
你可以把图片用普通的存储方式存储在数据库里面
然后通过ID或者OID与要素关联。
显示图片的时候利用要素的OID到普通数据库中读取图片就行了
不建议在SDE放大量的属性数据
会很浪费空间和下降性能的。

2,142

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧