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 :

Création de plusieurs Layers depuis un Geojson [LeafLet]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2023
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Création de plusieurs Layers depuis un Geojson
    Bonjour,
    Assez novice dans LeafLet, je teste de nouvelles choses.
    J'arrive à récupérer un Geojson, a en faire un calqueet à l'afficher dans layer.control.
    Maintenant, j'aimerais tenter d'éclater ce Geojson en fonction de certains feature type.

    Je partais sur l'idée de switcher le feature type en question dans un onEachFeature, mais c'est là que je bloque.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const tempCalques = L.geoJSON(geojson_data.data, { onEachFeature: onEachFeaturePolygon })
                        tempCalques.addTo(map);
                        LayerControl.addOverlay(tempCalques, "Contours")
    Est-ce que je dois créer autant de tempCalques que de feature types ou est-ce que je peux créer de nouveaux calques dans mon onEachFeature ?

    Merci de bien vouloir m'aiguiller.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 656
    Points
    44 656
    Par défaut
    Bonjour et bienvenue sur DVP.

    As tu regardé ce tutoriel : Using GeoJSON with Leaflet ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2023
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci pour la réponse.
    Oui, j'ai parcouru tous leurs tutos. J'y ai appris à afficher des features ou pas (entre autres), mais pas à créer une couche en fonction d'une des propriétés.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 656
    Points
    44 656
    Par défaut
    Dans ta fonction onEachFeature tu peux tout à fait affecter tes layers à un layerGroup suivant par exemple le type de géométrie, mais pas que.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    const layerMarker = L.layerGroup();
    const layerLine = L.layerGroup();
     
    function onEachFeature(feature, layer) {
      layer.bindPopup(feature.properties.name);
      if ("Point" === feature.geometry.type) {
        layer.addTo(layerMarker)
      }
      if ("LineString" === feature.geometry.type) {
        layer.addTo(layerLine)
      }
    }
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function onEachFeature(feature, layer) {
      switch (feature.geometry.type) {
        case "Point":
          layer.addTo(layerMarker)
          break;
        case "LineString":
          layer.addTo(layerLine)
          break;
        default:
      }
    }
    La création dynamique des layerGroup est envisageable.

  5. #5
    Candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2023
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2023
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Ha OK !
    Merci beaucoup de l'info. Je cherchais plutôt du côté de l'utilisation d'un filtre, mais cette solution est plus propre que ce que je commençais a écrire 😆
    Encore merci.

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

Discussions similaires

  1. [AC-2013] Création d'une table depuis plusieurs tables remplies
    Par biuzi dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 19/05/2016, 18h27
  2. Réponses: 2
    Dernier message: 26/06/2009, 12h55
  3. création de plusieurs fiches dans un meme formulaire...
    Par Toff !!!!! dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 13h44
  4. création de plusieurs threads dans WinMain
    Par ChidoriRasengan dans le forum DirectX
    Réponses: 1
    Dernier message: 15/06/2005, 21h36
  5. Réponses: 2
    Dernier message: 10/05/2005, 18h15

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