从MapX到MapXtreme2004[4]-标注AutoLabel

时间:2022-04-23
本文章向大家介绍从MapX到MapXtreme2004[4]-标注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,试试,的确可以