arcgis_标注功能
void Label()
{
if (this.Layer == null)
return;
IGeoFeatureLayer mGeoFLayer = this.Layer as IGeoFeatureLayer;
if (mGeoFLayer != null)
{
string labelExpress = this.txtExpress.Text.Trim();
if (string.IsNullOrEmpty(labelExpress))
{
mGeoFLayer.DisplayAnnotation = false;
mGeoFLayer.DisplayField = string.Empty;
return;
}
else
{
mGeoFLayer.DisplayAnnotation = true;
IAnnotateLayerProperties mAnnotateLp = null;
IElementCollection mElementCol = null;
for (int i = 0; i < mGeoFLayer.AnnotationProperties.Count; i++)
{
mGeoFLayer.AnnotationProperties.QueryItem(i, out mAnnotateLp, out mElementCol, out mElementCol);
if (mAnnotateLp != null && (mAnnotateLp is ILabelEngineLayerProperties))
{
ILabelEngineLayerProperties mLabelEngine = mAnnotateLp as ILabelEngineLayerProperties;
mLabelEngine.Symbol = GetTextSymbolFromGUI();
if (mLabelEngine.IsExpressionSimple)
{
mLabelEngine.IsExpressionSimple = true;
mLabelEngine.Expression = labelExpress;;
}
break;
}
}
}
}
}