Objets publics et cycle de vie
Séquence standard
Le cycle de vie recommandé côté intégration est:
- créer ou récupérer
geoviewer-*-element - attendre
readyou utiliseronViewerServiceReady(...) - attendre
viewerService.onReady(...) - manipuler
mapManager,tools,services,widgetManageroutopic
Exemple minimal:
<geoviewer-esri-element id="viewer"></geoviewer-esri-element>
<script type="module"> const el = document.getElementById('viewer');
el.onViewerServiceReady((viewerService) => { viewerService.onReady(() => { console.log('Viewer prêt pour interaction applicative'); console.log(viewerService.mapManager); }); });</script>Objets publics à connaître
| Objet | À quoi ça sert | Quand l’utiliser | Ce qu’on n’y cherche pas |
|---|---|---|---|
ViewerService | point d’entrée global | dès que le viewer est prêt | logique métier carto fine |
MapManager | couches runtime, popup, extent, basemaps | si votre besoin touche la carte | activation de widgets |
ToolImplementations via mapManager.tools | actions carto concrètes | si vous devez dessiner, zoomer, écouter, convertir | état global de l’application |
ServiceImplementations via mapManager.services | services applicatifs liés à la carte | si vous consommez géocode, parcelles, recherche métier ou autre service exposé | création directe de features |
EventsTool | clics et observation d’événements carte | pour écouter des interactions spatiales | événements métier topic |
ApiFeatureFactory | créer des features runtime | si vous ajoutez vous-même points, lignes ou polygones | import de fichiers complexes |
ApiFeatureConverter | convertir vers et depuis GeoJSON, KML, SHP… | si vous sortez ou réinjectez des géométries | gestion de widgets |
WidgetReference via viewerService.widgetManager | retrouver ou piloter un widget existant | si vous pilotez un widget déjà configuré | gestion de la carte |
TopicManager | publier des événements métier | si vous orientez un workflow applicatif | clics bruts sur la carte |
Comment raisonner rapidement
1. Si votre besoin touche la carte ou des features runtime
Commencez par viewerService.mapManager.
Exemples:
- ajouter une couche
GRAPHICS - ouvrir une popup
- zoomer sur une feature
- récupérer l’emprise ou le centre
2. Si votre besoin est une action carto concrète
Allez vers viewerService.mapManager.tools.
Les plus utiles côté intégration:
eventsdrawzoomfeatureFactoryfeatureConverterreport
3. Si votre besoin touche un service applicatif exposé
Allez vers viewerService.mapManager.services.
Exemples:
- déclencher une recherche ou un géocodage
- consommer un service métier déjà exposé par le viewer
- réutiliser la logique carto existante sans recréer une couche d’accès parallèle
4. Si votre besoin touche un widget existant
Allez vers viewerService.widgetManager.
Exemples:
- récupérer une référence avec
getReference(...) - cibler une classe de widget avec
getReferencesByWidgetClass(...) - activer ou désactiver un widget déjà présent
5. Si votre besoin est métier ou analytique
Commencez par les événements DOM topic, puis regardez viewerService.topicManager si vous devez publier.
Exemples:
- brancher analytics
- déclencher une action applicative
- réagir à une activation de widget
Variante avancée: instantiateViewer
Si vous avez besoin de piloter explicitement le cycle de vie hors Web Component, instantiateViewer(...) reste possible.
À réserver aux cas où vous avez une vraie contrainte d’intégration plus fine.