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.).
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:*********
});
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
export var map // depuis map.js &
import map from.... // dans fichier.js
Je me suis dit, je peux créer une classe avec comme variable de constructeur map.
Voila la syntaxe de ma classe :
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=[]) {
}
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.

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