nj_nsg
路人甲
路人甲
  • 注册日期2004-06-30
  • 发帖数14
  • QQ
  • 铜币182枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1699回复:3

如何产生一注记层,并由xy 坐标产生一文本注记

楼主#
更多 发布于:2004-07-31 08:54
如何产生一注记层,并由xy 坐标产生一文本注记?
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-08-02 08:30
新建注记层我倒没做过,用x,y做标注倒是木有问题滴说,可以看看帮助了
举报 回复(0) 喜欢(0)     评分
wlh_jimmy
路人甲
路人甲
  • 注册日期2004-02-02
  • 发帖数66
  • QQ309588724
  • 铜币363枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-08-06 11:28
<P><b>注记层可以通过ArcCatalog去建,但是注意,注记层只能在GeoDataBase中存在。</b></P><P><b>向上加要素,你可去差一下帮助中的IFDOGraphicsLayer这个接口。我可以给你提供一下程序。</b></P><P>
'********************************
'**                            **
'**         添加标注           **
'**                            **
'********************************
Public Sub AddAnnotation(ByVal x As Double, y As Double, pFeatureLayer As IFeatureLayer)
  
  Dim str As String
  Dim pElement As IElement
  Dim pTextElement As ITextElement
  Dim pFillColor As IRgbColor, pLineColor As IRgbColor
  Dim pFillSymbol As IFillSymbol
  Dim pLineSymbol As ILineSymbol
  Dim pBalloonCallout As IBalloonCallout
  Dim pFormattedTextSymbol As IFormattedTextSymbol
  Dim pPoint As IPoint, pTextPoint As IPoint
  Dim pFeatureClass As IFeatureClass
  Dim pFeature As IFeature
  Dim pFDOGraphicsLayer As IFDOGraphicsLayer
  
  str = Trim(InputBox("请输入注记名称:", "添加注记"))
  '判断输入的主机是否为空
  If str = "" Then
    MsgBox "注记不许为空!", vbApplicationModal + vbOKOnly, "警告"
    Exit Sub
  End If
  
  Set pPoint = New Point
  pPoint.PutCoords x, y
  
'******************************************************************************
          '对textSymbol的BackGround进行设置                                  **
                                                                            '**
  Set pFillColor = New RgbColor                                             '**
  With pFillColor                                                           '**
    .Red = 28                                                               '**
    .Green = 233                                                            '**
    .Blue = 78                                                              '**
  End With                                                                  '**
                                                                            '**
  Set pLineColor = New RgbColor                                             '**
  With pLineColor                                                           '**
    .Red = 0                                                                '**
    .Green = 0                                                              '**
    .Blue = 0                                                               '**
  End With                                                                  '**
  Set pLineSymbol = New SimpleLineSymbol                                    '**
  pLineSymbol.Color = pLineColor                                            '**
  pLineSymbol.Width = 1                                                     '**
                                                                            '**
  Set pFillSymbol = New SimpleFillSymbol                                    '**
  pFillSymbol.Color = pFillColor                                            '**
  pFillSymbol.Outline = pLineSymbol                                         '**
                                                                            '**
  Set pBalloonCallout = New BalloonCallout                                    '**
  pBalloonCallout.Style = esriBCSRoundedRectangle                           '**
  pBalloonCallout.AnchorPoint = pPoint                                      '**
  Set pBalloonCallout.Symbol = pFillSymbol                                  '**
                                                                            '**
'******************************************************************************
  
  '对textSymbol的设置
  Set pFormattedTextSymbol = New TextSymbol
  Set pFormattedTextSymbol.Background = pBalloonCallout
  pFormattedTextSymbol.Font.Name = "宋体"
  pFormattedTextSymbol.Size = 10
  pFormattedTextSymbol.HorizontalAlignment = esriTHACenter
  pFormattedTextSymbol.TypeSetting = True
  
  Set pTextElement = New TextElement
  pTextElement.Text = str
  pTextElement.ScaleText = True
  pTextElement.Symbol = pFormattedTextSymbol
  
  Set pTextPoint = New Point
  pTextPoint.PutCoords x + 0.0005, y + 0.0002
  
  Set pElement = pTextElement
  pElement.Geometry = pTextPoint
  
  '进行创建新的要素
  Set pFeatureClass = pFeatureLayer.FeatureClass
  Set pFeature = pFeatureClass.CreateFeature
  
  Set pFDOGraphicsLayer = New FDOGraphicsLayer
  Set pFDOGraphicsLayer = pFeatureLayer</P><P>  pFDOGraphicsLayer.BeginAddElements
  pFDOGraphicsLayer.DoAddFeature pFeature, pElement, 0
  pFDOGraphicsLayer.EndAddElements
  
  Frm_main.MapControl1.ActiveView.PartialRefresh esriViewGraphics, Nothing, Nothing
  
  Set pPoint = Nothing
  Set pTextPoint = Nothing
  Set pTextElement = Nothing
  Set pFormattedTextSymbol = Nothing
  Set pFDOGraphicsLayer = Nothing
  Set pFillColor = Nothing
  Set pLineColor = Nothing
  Set pBalloonCallout = Nothing
  Set pLineSymbol = Nothing
  Set pFillSymbol = Nothing
  
End Sub</P>
举报 回复(0) 喜欢(0)     评分
gzstyxb
路人甲
路人甲
  • 注册日期2004-09-22
  • 发帖数358
  • QQ
  • 铜币1045枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-11-28 14:36
多谢学习<img src="images/post/smile/dvbbs/em02.gif" />
由爱故生忧, 由爱故生怖. 若离于爱者, 无忧亦无怖.
举报 回复(0) 喜欢(0)     评分
游客

返回顶部