标注AutoLabel

标注AutoLabel
好日子一去不复返了,原来总觉得Mapx很多地方设计得不是很自然,比如,feature和具体的feature之间的某些属性的关系,有时令人迷惑。但是,用了Mapxtreme,才感觉到Mapx的方便。真不知MapInfo怎么想的!原来的标注非常简单,layer有个autolabel属性,一设就可以了。现在呢:

            //James.Liu的代码
           Table table = Session.Current.Catalog.OpenTable("usa.tab");
            Map map = Session.Current.MapFactory.CreateEmptyMap(new Size(300, 300));
            LabelLayer layer = new LabelLayer();
            map.Layers.Add(layer);
            LabelSource source = new LabelSource(table);
            source.DefaultLabelProperties.Caption = "State_Name";
            layer.Sources.Append(source);

            //我的
            LabelLayer layer = new LabelLayer();
            MapControl1.Map.Layers.Add(layer);
            LabelSource source = new LabelSource(MapInfo.Engine.Session.Current.Catalog.GetTable("地名"));
            source.DefaultLabelProperties.Caption = "f_name";        //标注用到的那个字段名称
            layer.Sources.Append(source);

            看Layer.Sources的架势,好像可以共用一个LabelLayer,试试,的确可以

自动标注通过LabelSource来控制.

     LabelLayer labelLayer = layer as LabelLayer;
     MapInfo.Mapping.LabelSource source = labelLayer.Sources[0] as LabelSource;
     source.Enabled = false;


可选和可编辑通过LayerHelper来实现

   IMapLayer layer = map.Layers as IMapLayer;
    LayerHelper.SetSelectable(layer,true); //可选取
    LayerHelper.SetEditable(layer,true);     //可编辑
    layer.Enabled = false;                              //可视

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值