IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Utiliser bringToBack() sur une couche vectoriel en GeoJSON [LeafLet]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur agronome spécialisé dans le numérique
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur agronome spécialisé dans le numérique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Utiliser bringToBack() sur une couche vectoriel en GeoJSON
    Bonsoir à tous,

    Je possède 3 couches de données en GeoJSON (2 avec des objets points et 1 avec des objets polygones). J'ai créé et ajouté à ma carte 1 point et la polygone : les points sont bien au-dessus des polygones. Puis j'ai ajouté ma 2ème couche Poin (que j'ai mis dans l'ordre avant ma couche de polygone), et la c'est le drame : ma deuxième couche de points est sous ma couche polygone.
    J'ai essayé plein de chose : utiliser les "Panes" utiliser des options ZIndex mais rien ne marche. J'essaie du coup quel que chose de simple qui est bringToBack() sur ma couche polygone or quand je l'implémente cela me ressort une erreur : Uncaught ReferenceError: geojson_PRA is not defined at carte_presentation.js:145 voila mon code de carte_presentation :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    //On défini le style général des PRA
    	function stylePrez (feature) {     
    		return {        
    			weight: 0.5,
    			opacity: 1,
    			color: '#000000',
    			dashArray: '3',
    			fillOpacity: 0.7,
    			fillColor: '#'+(0x1000000+(Math.random())*0xffffff).toString(16).substr(1,6) 			
    		};   
    	}
     
    var infoPrez = L.control();
    	infoPrez.onAdd = function (mapPrez) {
    		this.divPrez = L.DomUtil.create('div', 'infoPrez'); // create a div with a class "infoPrez"
    		this.update();
    		return this.divPrez;
    	};
     
    // fonction qui permet de mettre à jour l'encart d'information
    	infoPrez.update = function (props) {
    		this.divPrez.innerHTML =  (props ? '<b>'+props.prenom +' '+ props.nom +'</b> <br>'
    			+ props.codePostal + ' ' + props.libelle + '<br>' 
    			+ props.surfacetot + ' ha <br>'
    			+ props.cultures
    			: "<b>Informations </b> <br> Survolez un point d'une exploitation");
    	};
     
    //fonction qui permet de mettre un PRA en "relief" lorsque l'on passe dessus
    	function highlightFeaturePrez(e) {
    		var layer = e.target;
     
    		layer.setStyle({
    			weight: 3,
    			color: '#FFFFFF',
    			dashArray: '',
    			fillOpacity: 0.7
    		});
     
    		if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {
    			layer.bringToFront();
    		}
     
    		infoPrez.update(layer.feature.properties);
    	}
     
    	//fonction de reset du style de la PRA quand le curseur n'est plus dessus 
    	function resetHighlightPrez(e) {
    		geojson_PrezExploit.resetStyle(e.target);
    		infoPrez.update();
    	}
     
    //fonction pour chaque PRA qui permet de mettre en lumière ou non en fonction du passage du curseur de la souris
    	function onEachFeaturePrez(feature, layer) {
    		layer.on({
    			mouseover: highlightFeaturePrez,
    			mouseout: resetHighlightPrez,
    		});
    	}	
     
    function onEachFeaturePRA(feature, layer) {
        // does this feature have a property named popupContent?
        if (feature.properties && feature.properties.libelle) {
            layer.bindPopup(feature.properties.libelle);
        }
    }
     
    //couche Open street mapPrez
    	var openSM = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { // LIGNE 20
    		attribution: ' OpenStreetmap contributors',
    		maxZoom: 16
    	});
     
    // définition de la carte				
    	var mapPrez = L.map('mapPrez', {
    		center: [48.176,-4.239],
    		zoom: 11,
    		layers: [openSM]
    	});
     
    		L.control.scale({position: 'bottomright'}).addTo(mapPrez);
     
    //les controls sur la carte dans leur ordre d'apparaition
    	infoPrez.addTo(mapPrez);
     
    //Récupération Couche avec la localisation de l'OPA
    	$.ajax({     
    		url : './GeoJSON/geojson_loca_OPA.php',     
    		type : 'GET',     
    		dataType : 'json', // On désire recevoir du geojson 
    		success : function(data){ // data contient le geojson renvoyé 
    			geojson_Loca_OPA=L.geoJson(data, 
    										{pointToLayer: function (feature, latlng) {return L.circleMarker(latlng, geojsonMarkerOptions2);}});         
    			mapPrez.addLayer(geojson_Loca_OPA)
    		},     
    		error : function(){alert('erreur')}
    	});	
     
    	var geojsonMarkerOptions2 = {
    			radius: 8,
    			color: "#FFFFFF",
    			weight: 1,
    			opacity: 1,
    			fillOpacity: 1,
    			fillColor: "#F7BE4C"
    		};
     
    //Récupération des exploitations avec leurs risques et vulné en €/ha en geojson avec la coloration des points
    	$.ajax({     
    		url : './GeoJSON/geojson_prez_exploit.php',     
    		type : 'GET',     
    		dataType : 'json', // On désire recevoir du geojson
    		success : function(data){ // data contient le geojson renvoyé 
    			geojson_PrezExploit=L.geoJson(data, 
    										{pointToLayer: function (feature, latlng) {return L.circleMarker(latlng, geojsonMarkerOptions);},onEachFeature: onEachFeaturePrez});         
    			mapPrez.addLayer(geojson_PrezExploit)
    		},     
    		error : function(){alert('erreur')}
    	});
     
     
    	var geojsonMarkerOptions = {
    			radius: 8,
    			color: "#FFFFFF",
    			weight: 1,
    			opacity: 1,
    			fillOpacity: 1,
    			fillColor: "#7C7C7C"
    		};
     
    //Récupération des PRA avec leurs risques et vulné en €/ha en geojson ***Code Pauline Jouzier  
    	$.ajax({     
    		url : './GeoJSON/geojson_pra.php',     
    		type : 'GET',     
    		dataType : 'json', // On désire recevoir du geojson  
    		pane: 'poly',   
    		success : function(data){ // data contient le geojson renvoyé 
    			geojson_PRA=L.geoJson(data, {style: stylePrez, onEachFeature: onEachFeaturePRA});         
    			mapPrez.addLayer(geojson_PRA);     
    			mapPrez.fitBounds(geojson_PRA.getBounds());      
    		},     
    		error : function(){alert('erreur');} 
    	});
     
    	geojson_PRA.bringToBack();
    Merci pour votre lecture

  2. #2
    Candidat au Club
    Femme Profil pro
    Ingénieur agronome spécialisé dans le numérique
    Inscrit en
    Août 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur agronome spécialisé dans le numérique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2021
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Problème résolu
    Il suffisait de déplacer le geojson_pra.bringToBack() dans la fonction ajax comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     $.ajax({     
    		url : './GeoJSON/geojson_pra.php',     
    		type : 'GET',     
    		dataType : 'json', // On désire recevoir du geojson  
    		pane: 'poly',   
    		success : function(data){ // data contient le geojson renvoyé 
    			geojson_PRA=L.geoJson(data, {style: stylePrez, onEachFeature: onEachFeaturePRA});         
    			mapPrez.addLayer(geojson_PRA);  
    			geojson_PRA.bringToBack();
    			mapPrez.fitBounds(geojson_PRA.getBounds());      
    		},     
    		error : function(){alert('erreur');} 
    	});

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment utiliser usemap sur une image png transparente
    Par master_kb2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/01/2008, 14h00
  2. Réponses: 1
    Dernier message: 27/03/2007, 14h07
  3. [FLASH 8] Creer/utiliser/réfléchir sur une bibli de fonction externe !?
    Par Lorenzo77 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 16/01/2007, 13h35
  4. Réponses: 7
    Dernier message: 18/04/2006, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo