PageSourceSearch

https://ballesta.fr/site/pages/cartographie/classes/exploitants/antennes_exploitants.js

js ballesta.fr collected 2026-10-02 00:20:40 UTC 7,420 bytes, 237 lines download raw bytes

1// =========================================
2// Antennes des exploitants (opérateurs)
3// Situées dans le voisinage du site étudié.
4// =========================================
5
6//Icone oroginal 
7var icone_originale = null;
8// Supports affichés pour l'exploitant sélectionné
9// Remplis avant l'affichage avec les coordonnées des supports reçues du serveur
10// Utilisé pour effacer les supports de l'exploitant sur changement
11var exploitant_supports_affiches = [];
12
13var exploitant_habitat_courant = null;
14
15
16// Nom de l'exploitant sélectionné par bouton radio
17// de "Sites des exploitants entourant votre site"
18var exploitant_courant = null;
19
20// Mémorise l'exploitant courant.
21// Ne peut pas etre mémoriser dans le script la page html
22// Voir: https://www.w3schools.com/js/tryit.asp?filename=tryjs_scope_window
23function exploitant_courant_memorise(nom_exploitant)
24{
25    console.log('exploitant_courant_memorise: '+ nom_exploitant);
26    exploitant_courant =  nom_exploitant;
27}
28
29// Efface les supports exploitant.
30// Pour les reafficher par la suite.
31function exploitant_supports_efface()
32{
33    // Efface les supports sur la carte
34    for (var s in exploitant_supports_affiches)
35	{
36        // Efface le support
37        exploitant_support_efface(s);
38    }
39    // Efface dans le modèle
40	exploitant_supports_affiches = [];
41}
42
43// Réduit un support exploitant.
44// Utilisé pour masquer la portée des supports exploitant
45// sans interet pour l'étude du site.
46function exploitant_support_reduit(s)
47{
48    var marqueur = s[0];
49    var   portee = s[1];
50    var  affiche = s[2];
51    console.log('affiche',affiche);
52
53    if (affiche)
54    {
55        // Affiche: réduit le support
56        radio_map.removeLayer(portee); 	// Portée
57        // Réduit l'icone
58        exploitant_icone_reduit(marqueur);
59        s[0]=marqueur;
60        // Non affiché
61        s[2]=false;
62    }
63    else
64    {
65        // Réduit: remet le support visible
66        exploitant_icone_restaure(marqueur)
67		radio_map.addLayer(s[1]); 	// Portée
68		s[2]=true;
69	}
70
71}
72
73function exploitant_icone_reduit(marqueur)
74{
75    // This sets up an icon to be replaced on redraw.
76    console.log("marqueur", marqueur);
77    icone_originale = marqueur.options.icon;
78    var petiteIcone =  L.icon({
79		iconUrl: 'vendeur/leaflet/images/marker-icon.png',
80		iconSize: [15, 25]
81    });
82	marqueur.setIcon(petiteIcone);
83}
84
85function exploitant_icone_restaure(marqueur)
86{
87     marqueur.setIcon(icone_originale);
88}
89
90
91// Efface le support
92function exploitant_support_efface(s)
93{
94    console.log('exploitant_support_efface');
95    radio_map.removeLayer(exploitant_supports_affiches[s][0]); // marqueur
96    radio_map.removeLayer(exploitant_supports_affiches[s][1]); // portée
97}
98
99//
100// ==============Supports exploitant sélectionné =================
101//
102// Evènement: Déclenché sur changement d'exploitant
103//		- Formulaire: "exploitant"
104//		- Evènement sur boutons radio:  "onchange"
105function exploitant_supports_affiche()
106{
107    // console.log(url());
108    exploitant_supports_efface();
109    console.log('exploitant_courant',exploitant_courant)
110    console.log(radio_map);
111    if (exploitant_courant != '00')
112    {
113        // Exploitant choisi.
114        // Récupère les coordonnées de la vue (fenetre d'affichage de la carte)
115        var fenetre_affichage = radio_map.getBounds();
116         console.log(fenetre_affichage);
117
118        // Coordonnée du coin en bas à gauche
119        var sud_ouest = fenetre_affichage.getSouthWest();
120        var sud = sud_ouest.lat;
121        var ouest = sud_ouest.lng;
122
123        // Coordonnée du coin en haut à droite
124        var nord_est = fenetre_affichage.getNorthEast();
125        var nord = nord_est.lat;
126        var est = nord_est.lng;
127        console.log(url());
128        var requete= url() + "classes/exploitants/lis_supports_exploitant.php"
129           +"?nord="  + nord
130           +"&ouest=" + ouest
131           +"&est="   + est
132           +"&sud="   + sud
133           +"&exploitant=" + exploitant_courant
134           +"&supports=?";
135        console.log(requete);
136
137        $.ajax({
138          dataType: "json",
139          url: requete,
140        });
141    }
142}
143
144// Affiche les supports de l'exploitant sélectionné renvoyés par le serveur
145// Appelé par '$.ajax(url() + "lis_supports_exploitant.php", ...)'
146// Dans la fonction 'exploitant_supports_affiche(exploitant)' ci dessus
147function supports
148(
149    liste_supports // Liste de supports en Json retournée par le serveur
150)
151{
152    var Nombre_supports_exploitant = liste_supports.length;
153    console.log('Nombre_supports_exploitant: ' + Nombre_supports_exploitant);
154    console.log(liste_supports[1]);
155    // Affiche les supports
156    for (var i = 0; i < Nombre_supports_exploitant; i++) {
157        var s = liste_supports[i];
158        // console.log(s);
159        // Support d'antennes existant
160        support_affiche(s,i);
161    }
162}
163
164function support_affiche(
165                            s, // Support
166                            i  // Position dans liste des supports
167                        )
168{
169    // Marqueur du support
170    var marqueur = L.marker
171    (
172        [s.latitude, s.longitude],
173        // Options
174        {
175            clickable: true,
176            draggable: false,
177            position_liste : i
178        }
179    );
180    marqueur.on('click', exploitant_support_click);
181    marqueur.addTo(radio_map);
182
183    console.log('horizon_temporel_courant:' + horizon_temporel_courant);
184    console.log('exploitant_habitat_courant:' + exploitant_habitat_courant);
185    // Cercle centré sur le support matérialisant la portée de l'antenne
186    //nouveau_rayon_antenne=1000;
187    switch (horizon_temporel_courant)
188    {
189        case 0: nouveau_rayon_antenne = habitats_antennes_rayons[exploitant_habitat_courant].habitat_rayon_0;
190            break;
191        case 1: nouveau_rayon_antenne = habitats_antennes_rayons[exploitant_habitat_courant].habitat_rayon_2_3;
192            break;
193        case 2: nouveau_rayon_antenne = habitats_antennes_rayons[exploitant_habitat_courant].habitat_rayon_5;
194            break;
195    }
196    console.log('nouveau_rayon_antenne:' + nouveau_rayon_antenne );
197    var portee_antenne = L.circle
198    ([s.latitude, s.longitude],
199        Number(nouveau_rayon_antenne),
200        {
201            fillColor : 'PaleTurquoise',
202            fillOpacity: Number(0.1),
203            color: 'blue',
204            weight : Number(0.5),
205            opacity : Number(0.8)
206        }
207    );
208    // Indispensable
209    portee_antenne.setRadius(nouveau_rayon_antenne);
210    console.log('portee_antenne:' )
211    console.log(portee_antenne)
212    portee_antenne.addTo(radio_map);
213    // Mémorise les supports afin de pouvoir les effacer en tant que objets graphiques
214    var affiche = true;
215    exploitant_supports_affiches.push([marqueur,portee_antenne,affiche]);
216}
217
218// Réduit l'icone du support exploitant sur click
219// Pour les antennes de deuxième rang par rapport au site étudié
220function exploitant_support_click(e)
221{
222    console.log(e);
223    var marqueur = e.target;
224    var position_liste = marqueur.options.position_liste;
225    var s = exploitant_supports_affiches[position_liste];
226    exploitant_support_reduit(s);
227}
228
229// Changement de l'habitat couvert par les antennes de l'exploitant courant
230// Réaffiche les corolles des supports de l'exploitant en fonction
231
232function exploitant_habitat_change(nouvel_habitat)
233{
234    exploitant_habitat_courant = nouvel_habitat;
235    horizon_temporel_operateur_change();
236}
237

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.