ArcEngine序列化矢量图层的标注属性

本文介绍了一种在ArcGIS中实现图层标注属性序列化的方法,该方法能够保存包括字体样式、位置和旋转角度在内的标注特性,以便于后续的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;  
using System.Collections.Generic;  
using System.Text;  
using System.Data;  
using System.Windows.Forms;  
using System.Drawing;  
using ESRI.ArcGIS.Controls;  
using ESRI.ArcGIS.esriSystem;  
using ESRI.ArcGIS.Carto;  
using ESRI.ArcGIS.Geodatabase;  
using ESRI.ArcGIS.Display;  
using ESRI.ArcGIS.Geometry;  
using ESRI.ArcGIS.DataSourcesRaster;  
using ESRI.ArcGIS.DataSourcesFile;  
using ESRI.ArcGIS.DataSourcesRasterUI;  
using Pacia.Map.Engine;  
using ESRI.ArcGIS.Display;     

    /// <summary>  
    /// 序列化图层的标注属性  
    /// </summary>  
    /// <param name="lyr">矢量图层</param>  
    /// <returns>byte[],包括标注的字体样式和位置</returns>  
    public static byte[] SerializeLabelProperty(IGeoFeatureLayer lyr)  
    {  
        try  
        {    
                IXMLStream pStream = new XMLStreamClass();  
                IXMLWriter pWriter = new XMLWriterClass();  
                pWriter.WriteTo((IStream)pStream);  
                IXMLSerializer pSerializer = new XMLSerializerClass();  
                ESRI.ArcGIS.Carto.IAnnotateLayerProperties pAnno;  
                IElementCollection pEle;  
                IElementCollection pEle2;  
                lyr.AnnotationProperties.QueryItem(0, out pAnno, out pEle, out pEle2);  
                ILabelEngineLayerProperties pLabelPro = pAnno as ILabelEngineLayerProperties;  
                ESRI.ArcGIS.Carto.IBasicOverposterLayerProperties pBasicLyrProp = pLabelPro.BasicOverposterLayerProperties;  
                ESRI.ArcGIS.Display.IFormattedTextSymbol pFormatSymbol = pLabelPro.Symbol as ESRI.ArcGIS.Display.IFormattedTextSymbol;  
                IPropertySet propertySet = new PropertySetClass();  
                propertySet.SetProperty("BasicOverposterLayerProperties", pBasicLyrProp);  
                propertySet.SetProperty("FormattedTextSymbol", pFormatSymbol);  
                pSerializer.WriteObject(pWriter, null, null, "", "", propertySet);  
                return pStream.SaveToBytes();  
        }  
        catch  
        {  
            return null;  
        }  
        return null;  
    }  

 

图层的标注属性,除了字段值及样式以外,还有字体的旋转角度等,使用序列化的方式直接保存起来,方便使用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值