Bonjour à tous,
J'ai bien avancé sur mon projet (voir mon précédent post), mais je bloque aujourd'hui sur un dernier petit point, que j'imagine tout bête
J'ai créé un layer (geojson) de points, dynamiquement à partir d'un layer (geojson) de polygones. Pour moi, c'est déjà énorme !
Maintenant, plutôt que d'utiliser un L.control.layers(), pour contrôler les couches, je souhaiter créer un petit bouton de switch (j'avais déjà fait ça dans un autre projet).
J'ai créé mes fonctions pour changer de type :
et je les appelle dans un bouton qui utilise le CSS de Toggle-Switch (https://ghinda.net/css-toggle-switch/) ainsi que Leaflet.Control.Custom (https://github.com/yigityuce/Leaflet.Control.Custom), ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 var currentMapType = "densite"; function changemaptoperiode() { map.removeLayer(MaillesLayerPoly); map.addLayer(MaillesLayerCircle); currentMapType = "periodes"; } function changemaptodensite() { map.removeLayer(MaillesLayerCircle); map.addLayer(MaillesLayerPoly); currentMapType = "densite"; }
Mais, quand je clique sur le bouton ainsi créé, j'obtiens ce message d'erreur de la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 L.control.custom({ position: 'topright', content : '<fieldset>' + '<div class="switch-toggle switch-candy">' + '<input id="Periodes" name="view" type="radio">' + '<label for="Periodes" onclick="changemaptoperiode()"><span data-toggle="tooltip" data-placement="bottom" title="Analyse par périodes"><span class="glyphicon glyphicon-time" aria-hidden="true"></span></span></label>' + '<input id="NbObservations" name="view" type="radio" checked>' + '<label for="NbObservations" onclick="changemaptodensite()"><span data-toggle="tooltip" data-placement="bottom" title="Analyse par densité d Observations"><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span></span></label>' + '<a style="background-color: orange !important"></a>' + '</div>' + '</fieldset>', style : { margin: '10px', padding: '0px 0 0 0', cursor: 'pointer', } }) .addTo(map);
Voici tout cela de manière interactive dans un JSFiddle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ReferenceError: changemaptoperiode is not defined ReferenceError: changemaptodensite is not defined
http://jsfiddle.net/gsuh8j74/
Est-ce que vous voyez pourquoi ma fonction n'est pas définie ?
Merci d'avance
Sylvain M.
Partager