Bonjour,
Je travaille sur une application cartographique MapBox écrite en JS avec des modules. Je débute sur cette notion de modules.
J'ai un premier fichier map.js qui définit la carte tq (la classe Map regroupe toutes les options de base d'une carte comme la navigation, le relief, le géocodeur etc.).
Par contre, j'ai un deuxième fichier fichier.js qui demande cette variable map pour fonctionner. Sachant qu'il s'agit d'un fichier qui pourrait être appelé dans plusieurs applications, je ne peux pas mettre (tout dépend du nom de la variable que va donner le développeur). ON doit pouvoir utiliser ce module sans avoir à le remanier à chaque fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 var map = new Map({ target:"map", center:default_center, zoom:zoom_default, pitch:0, bearing:0, maxZoom:22, withDem:true, withHillShade:true, withGeocoder:true, withUrlPos:true, token:********* });
Je me suis dit, je peux créer une classe avec comme variable de constructeur map.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 export var map // depuis map.js & import map from.... // dans fichier.js
Voila la syntaxe de ma classe :
Problème ici : console.log(map) ne renvoie pas mon objet 'map' présent dans map.js mais une div avec l'id "map". Du coup tout le code derrière ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 export class Module{ constructor(map=''){ this.map = map } api(map='', communes=[]) { }
Je suis conscient que je n'ai pas forcément les bonnes pratiques, je ne suis pas développeur de base.
Qqun pourrait me donner un avis sur les problèmes que je rencontre ci-dessus ?
Merci
Sylvain
Partager