Конвертация надписей в аннотации

0 голосов
спросил 23 Фев, 13 от dbepka (160 баллов) в категории Программные продукты Esri
Visual Studio 2010
ArcGIS 10.1
Помогите разобраться с ошибкой.
Взял пример конвертации из ArcGIS Resources, создал Add-in Project в VS.
При построении решения вылетает 4 ошибки.

Вот код:
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.esriSystem;
namespace ArcMapAddin2
{
public class LabelToAnnotation : ESRI.ArcGIS.Desktop.AddIns.Button
{
public LabelToAnnotation()
{

}
protected override void OnClick()
{
//
// TODO: Sample code showing how to access button host
//
ConvertLabelsToAnnotationSingleLayerMapAnno(ArcMap.Document.FocusMap,0);
}
protected override void OnUpdate()
{
Enabled = ArcMap.Application != null;
}
static void ConvertLabelsToAnnotationSingleLayerMapAnno(IMap pMap, int layerIndex)
{
IConvertLabelsToAnnotation pConvertLabelsToAnnotation = new ConvertLabelsToAnnotationClass();
ITrackCancel pTrackCancel = new CancelTrackerClass();
//Change global level options for the conversion by sending in different parameters to the next line.
pConvertLabelsToAnnotation.Initialize(pMap,
esriAnnotationStorageType.esriMapAnnotation,
esriLabelWhichFeatures.esriVisibleFeatures, true, pTrackCancel, null);
ILayer pLayer = pMap.get_Layer(layerIndex);
IGeoFeatureLayer pGeoFeatureLayer = pLayer as IGeoFeatureLayer;
if (pGeoFeatureLayer != null)
{
IFeatureClass pFeatureClass = pGeoFeatureLayer.FeatureClass;
//Add the layer information to the converter object. Specify the parameters of the output annotation feature class here as well.
pConvertLabelsToAnnotation.AddFeatureLayer(pGeoFeatureLayer,
pGeoFeatureLayer.Name + "_Anno", null, null, false, false, false, false,
false, "" ;) ;
//Do the conversion.
pConvertLabelsToAnnotation.ConvertLabels();
//Turn off labeling for the layer converted.
pGeoFeatureLayer.DisplayAnnotation = false;
//Refresh the map to update the display.
IActiveView pActiveView = pMap as IActiveView;
pActiveView.Refresh();
}
}
}
}

2 Ответы

0 голосов
ответил 01 Март, 13 от denser (180 баллов)
забавно они что-то замутили, я сейчас наткнулся на такую же ситуацию только с самым примитивомESRI.ArcGIS.Carto.ITextElement...
написал как положено (как всегда делал):
ITextElement textElement = new TextElementClass();
а он ругается:

решилось не обычно:
ITextElement textElement = new TextElement() as ITextElement;

в Вашем случае тоже должно сработать:
IConvertLabelsToAnnotation cc = new ConvertLabelsToAnnotation();
0 голосов
ответил 06 Март, 13 от dbepka (160 баллов)
У меня она решилась сменой версии .NET Framework 4.0 на 3.5 :) .
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...