banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Thu 21 August 2008 15:12

kael
Participant occasionnel
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 13

Problème création classe annotations Arcgis9.2

Bonjour à tous,
J'essaie de créer une classe d'annotations en vba mais après avoir récupéré un script à l'adresse suivante
http://edndoc.esri.com/arcobjects/8.3/? … tation.htm,j'ai un message d'erreur quand je l'execute "Le licence de cette application ne permet pas de créer ni de modifier la structure de ce type de données" alors que manuellement j'ai pas de souci.
Donc voilà je ne sais pas trop quoi faire.

Hors ligne

 

#2 Thu 21 August 2008 17:06

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: Problème création classe annotations Arcgis9.2

ton lien ne marche pas


Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#3 Thu 21 August 2008 17:17

kael
Participant occasionnel
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 13

Re: Problème création classe annotations Arcgis9.2

Hors ligne

 

#4 Thu 21 August 2008 17:26

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: Problème création classe annotations Arcgis9.2

tu as quelle licence d'arcgis ?
parce que le bout de code que tu as copié (création d'annotations liées aux entités au sein d'une géodatabase) ne fonctionne qu'avec une licence Arceditor ou Arcinfo


Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#5 Thu 21 August 2008 17:37

kael
Participant occasionnel
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 13

Re: Problème création classe annotations Arcgis9.2

ok merci, je comprends, je n'ai pas ces licences.Tu aurais un code me permettant de créer une classe d'annotations?

Hors ligne

 

#6 Thu 21 August 2008 18:01

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: Problème création classe annotations Arcgis9.2

Voici un code qui peut te mettre sur la piste

IFeatureWorkspaceAnno Example
The following example show how to use the CreateAnnotationClass on IFeatureWorkspaceAnno to create a new feature-linked annotation class. In this example, the annotation class is feature-linked to the "sew_str" feature class and is created in the same feature dataset as the feature class it is linked to.

The label expression is a simple expression of the values in the field called DESCRIPTION in the sew_str feature class. A text symbol for the feature-linked annotation is red with a font of "Courier New".

Code:

Dim myTxtSym As IFormattedTextSymbol

Private Sub NewAnnoClass()
  ' get a reference to the linked feature class
  Dim pWS As IWorkspace
  Dim pWSF As IWorkspaceFactory
  
  Set pWSF = New AccessWorkspaceFactory
  Set pWS = pWSF.OpenFromFile("D:\data\acsa_new.mdb", 0)
  
  Dim PFWSAnno As IFeatureWorkspaceAnno
  Set PFWSAnno = pWS
    
  Dim pFWS As IFeatureWorkspace
  Set pFWS = pWS
  
  Dim pFDataset As IFeatureDataset
  Set pFDataset = pFWS.OpenFeatureDataset("Sewer")
  
  Dim psrcFClass As IFeatureClass
  Set psrcFClass = pFWS.OpenFeatureClass("sew_str")
  
  ' set up reference scale
  Dim pGLS As IGraphicsLayerScale
  Set pGLS = New GraphicsLayerScale
  
  Dim pGeoDS As IGeoDataset
  Set pGeoDS = pFDataset
  
  pGLS.Units = esriFeet
  pGLS.ReferenceScale = 2000
  
  ' set up symbol collection
  Dim pSymbolColl As ISymbolCollection
  Set pSymbolColl = New SymbolCollection
  
  MakeText
  
  Set pSymbolColl.Symbol(0) = myTxtSym

  ' set up the annotation labeling properties including the expression
  Dim pAnnoProps As IAnnotateLayerProperties
  Set pAnnoProps = New LabelEngineLayerProperties

suite du code après ...
je pense que c'est la valeur suivante qu'il faut mettre à False
pAnnoProps.FeatureLinked = True
et que tu fasse 2-3 modifs dans le code

Code:

  
  pAnnoProps.FeatureLinked = False
  pAnnoProps.AddUnplacedToGraphicsContainer = False
  pAnnoProps.CreateUnplacedElements = True
  pAnnoProps.DisplayAnnotation = True
  pAnnoProps.UseOutput = True
  Dim aAnnoVBScriptEngine As IAnnotationExpressionEngine
  Set aAnnoVBScriptEngine = New AnnotationVBScriptEngine
  
  Dim pLELayerProps As ILabelEngineLayerProperties
  Set pLELayerProps = pAnnoProps
  Set pLELayerProps.ExpressionParser = aAnnoVBScriptEngine
  pLELayerProps.Expression = "[DESCRIPTION]"
  
  pLELayerProps.IsExpressionSimple = True
  pLELayerProps.Offset = 0
  pLELayerProps.SymbolID = 0
  Set pLELayerProps.Symbol = myTxtSym
  
  Dim pATP As IAnnotateLayerTransformationProperties
  Set pATP = pAnnoProps
  pATP.ReferenceScale = pGLS.ReferenceScale
  pATP.Units = esriFeet
  pATP.ScaleRatio = 1
  
  Dim pAnnoPropsColl As IAnnotateLayerPropertiesCollection
  Set pAnnoPropsColl = New AnnotateLayerPropertiesCollection
  pAnnoPropsColl.Add pAnnoProps

  ' use the AnnotationFeatureClassDescription co-class to get the list of required fields and the default name of the shape field
  Dim pOCDesc As IObjectClassDescription
  Set pOCDesc = New AnnotationFeatureClassDescription
  Dim pFDesc As IFeatureClassDescription
  Set pFDesc = pOCDesc

  ' create the new class
  Dim pNewClass As IFeatureClass
  Set pNewClass = PFWSAnno.CreateAnnotationClass("AnnoTest", pOCDesc.RequiredFields, pOCDesc.InstanceCLSID, pOCDesc.ClassExtensionCLSID, pFDesc.ShapeFieldName, "", pFDataset, psrcFClass, pAnnoPropsColl, pGLS, pSymbolColl, True)
  
  MsgBox "done" 
End Sub

Public Sub MakeText(
  ' helper function to create the text symbol
  Set myTxtSym = New TextSymbol
  '** Set the font for myTxtSym
  Dim myFont As IFontDisp
  Set myFont = New StdFont
  myFont.Name = "Courier New"
  myFont.Size = 9
  myTxtSym.Font = myFont
  '** Set the Color for myTxtSym to be Dark Red
  Dim myColor As IRgbColor
  Set myColor = New RgbColor
  myColor.Red = 150
  myColor.Green = 0
  myColor.Blue = 0
  myTxtSym.Color = myColor
  '** Set other properties for myTxtSym
  myTxtSym.Angle = 0
  myTxtSym.RightToLeft = False
  myTxtSym.VerticalAlignment = esriTVABaseline
  myTxtSym.HorizontalAlignment = esriTHAFull
  myTxtSym.CharacterSpacing = 200
  myTxtSym.Case = esriTCNormal
End Sub

Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#7 Fri 22 August 2008 08:53

kael
Participant occasionnel
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 13

Re: Problème création classe annotations Arcgis9.2

merci je vais essayer

Hors ligne

 

#8 Fri 22 August 2008 11:39

kael
Participant occasionnel
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 13

Re: Problème création classe annotations Arcgis9.2

Je viens d'essayer et j'ai toujours pas les droits.

Hors ligne

 

#9 Fri 22 August 2008 13:42

Tnarbiv
Participant assidu
Lieu: Véretz
Date d'inscription: 5 Sep 2005
Messages: 392

Re: Problème création classe annotations Arcgis9.2

je viens de trouver un autre lien pour la version 9.2
http://edndoc.esri.com//arcobjects/9.2/ … 85cbea.htm

il suppose que tu es sous arcmap et que la première couche soit une featurelayer stockée dans une geodatabase
c'est une conversion d'étiquettes en annotations
ce n'est pas forcément ce que tu cherches mais ça peut te donner des idées.

Dernière modification par Tnarbiv (Fri 22 August 2008 13:43)


Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.

Hors ligne

 

#10 Fri 22 August 2008 14:03

kael
Participant occasionnel
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 13

Re: Problème création classe annotations Arcgis9.2

c'est parfait merci!!

Hors ligne

 

Pied de page des forums

Powered by FluxBB