在C#中应用MapObjects(图层标注)
摘要:MapObjects CSharp .NET
作者:杨雨田 Blue_Bat@126.Com
在MO中自动标注需要利用LabelRenderer对象,一般标注过程中需要设置一个合适的字体,下面给出我实现的代码。
实现代码:
//针对点图层效果良好
//获取需要标注的图层
MapObjects2.MapLayer lyr = (MapObjects2.MapLayer)axMap1.Layers.Item(0);//我使用的是世界地图,0层为城市
MapObjects2.LabelRenderer lb = new MapObjects2.LabelRendererClass();//创建标注对象
lb.Field = "Name";//自动标注来源的字段。我在地图中加入的图层是ESRI SharpFiles 格式,这个‘name’是dbf文件中的字段名
MapObjects2.TextSymbol sym = lb.get_Symbol(0);//定义sym用来设置字体
sym.Font.Name = "宋体";//设置字体
sym.Font.Bold = false;//粗体显示
sym.Color = (uint)MapObjects2.ColorConstants.moRed;//设置标注文字颜色
sym.Font.Size = 10;// ※设置字体大小
//sym.Height = 5000;
lb.AllowDuplicates = true;//允许重复
lyr.Renderer = lb;//将设置好的标注给当前图层
上面的方法设置的字体不会随着地图的放大缩小而改变字体大小,实用性较高。当然我们也可以设置随地图放大缩小的标注,方法是注销上面的代码sym.Font.Size = 10;// ※设置字体大小
并取消下面的代码
//sym.Height = 5000;
的注释。