在C#中应用MapObjects(图层标注)

在 C# 中应用 MapObjects (图层标注)

摘要: MapObjects CSharp .NET

作者:杨雨田 [email protected]

在 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;

的注释。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus