代码改变世界

添加标注

2012-03-27 15:34  枫桥夜泊日  阅读(314)  评论(0编辑  收藏  举报

 public void CreatMark(string tempLayerNames)
        {
            MapInfo.Data.Table tblTemp = cat.GetTable(tempLayerName);
            LabelSource labelSource = new LabelSource(tblTemp);   //给所创建的临时表Animation中的图元加标注

            //指定要标准字段所在的列
            labelSource.DefaultLabelProperties.Caption = "Name";     //所要标注的列名

            labelSource.DefaultLabelProperties.Layout.Offset = 3;    //标注偏移

            labelSource.DefaultLabelProperties.Layout.Alignment = MapInfo.Text.Alignment.TopRight;//标注对齐方式

            labelSource.DefaultLabelProperties.Style.Font.BackColor = System.Drawing.Color.White;        //字体背景

            labelSource.DefaultLabelProperties.Style.Font.ForeColor = System.Drawing.Color.Red;          //字体颜色

            labelSource.DefaultLabelProperties.Style.Font.TextEffect = MapInfo.Styles.TextEffect.Box;    //边缘效果

            labelSource.DefaultLabelProperties.Style.Font.FontWeight = MapInfo.Styles.FontWeight.Bold;   //粗体

            MapInfo.Styles.SimpleLineStyle simpleLineStyle = new MapInfo.Styles.SimpleLineStyle(0);      //标注注释线

            labelSource.DefaultLabelProperties.Style.CalloutLine.ApplyStyle(simpleLineStyle);

            //取消标注注释线

            LabelLayer labelLayer = new LabelLayer();

            labelLayer.Name = "jcbz";                                                          //设置标注图层的名称

            labelLayer.Sources.Append(labelSource);                                   //往地图中加入该标注层

            mapMainControl.Map.Layers.Add(labelLayer);
        }