Suite

La couche personnalisée ne dessine pas à l'aide d'ArcObjects ?

La couche personnalisée ne dessine pas à l'aide d'ArcObjects ?


J'ai une couche Customer qui hérite de BaseCustomLayer.

Je l'ajoute à mon MapControl via addLayer mais la fonctionpublic override void Draw (esriDrawPhase drawPhase, IDisplay Display, ITrackCancel trackCancel)n'est jamais touché.

Le calque personnalisé apparaît coché dans la table des matières.

Je pense qu'il me manque une ligne d'initialisation.


Voici un calque personnalisé minimaliste :

en utilisant le système ; en utilisant System.Collections.Generic ; en utilisant System.Linq ; en utilisant System.Text; en utilisant ESRI.ArcGIS.ADF.BaseClasses ; en utilisant ESRI.ArcGIS.Geometry ; en utilisant ESRI.ArcGIS.Display ; en utilisant ESRI.ArcGIS.esriSystem ; espace de noms MapControlApplication1 { class CustLayer2: BaseCustomLayer { public override void Draw(esriDrawPhase drawPhase, IDisplay Display, ITrackCancel trackCancel) { System.Diagnostics.Debug.Print("drawing {0} {1}", drawPhase, Environment.TickCount); } } }

J'ai créé un nouveau projet et choisi C#>ArcGIS>Extending ArcObjects>Mapcontrol Application, puis j'ai ajouté un nouvel élément de menu dans le menu de MainForm avec ceci :

private void testToolStripMenuItem_Click(object sender, EventArgs e) { try { CustLayer2 layer = new CustLayer2(); layer.Name = "cust layer2"; axMapControl1.AddLayer(calque); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } }

Lorsque je lance, je vois cette sortie lorsque je me déplace sur la carte :

dessin esriDPGeography 441416029 dessin esriDPGeography 441422207 dessin esriDPGeography 441433579

Voir la vidéo: Demo - Just Funny with ArcObjects SDK