在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;
的注釋。