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

IGN API Géoportail Discussion :

Connaitre la hauteur et taille d'un bâtiment via API


Sujet :

IGN API Géoportail

  1. #1
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 236
    Points : 298
    Points
    298
    Par défaut Connaitre la hauteur et taille d'un bâtiment via API
    Bonjour,

    Je chercherais à connaitre les informations (surface, hauteur) d'un bâtiment (immeuble, maison...) par rapport à des coordonnées géographiques.


    Est-ce qu'avec les API il n'y a pas de solution envisageable ?
    Il y a aussi le Lidar HD qui avance bien, est-ce que rien n'est encore possible de ce côté là non plus ?

    Merci pour vos idées.

    Xav

  2. #2
    Membre éclairé Avatar de elias couppe
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 428
    Points : 823
    Points
    823
    Par défaut
    Bonjour,

    vous pouvez éventuellement exploiter la couche Bati issue de la BDTOPO en vecteur tuilé : https://wxs.ign.fr/static/vectorTile...TOPO/bati.json

    Pour tester, vous pouvez passer par l'import de couche du Géoportail avec l'url ci-dessus :
    Nom : Capture d’écran du 2023-04-27 12-03-18.png
Affichages : 681
Taille : 67,5 Ko

    La couche s'importe, et au clic sur les bâtiments, vous pouvez voir les attributs disponibles (il n'y a pas la surface au sol par contre).

    Nom : Capture d’écran du 2023-04-27 12-08-53.png
Affichages : 679
Taille : 104,1 Ko

    De la même manière, il est a priori possible de faire la même chose sur votre application avec les API Géoportail.

  3. #3
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 236
    Points : 298
    Points
    298
    Par défaut direction WFS ???
    Merci Elias, ça fonctionne sur Geoportail avec l'import.
    C'est une bonne orientation.
    Effectivement on a l'altitude du sol et même la hauteur du bâtiment.
    Dommage qu'il n'y est pas la géométrie, car il serait possible de calculer les mesures et surface.

    Maintenant, je vois pas comment le mettre en place par l'API.
    Il me semble que c'est associé au Services WFS, mais je ne sais pas comment l'implanter dans mes couches WMTS et WMS.
    Pas vraiment vu d'exemple pour cela, côté Geoservices https://geoservices.ign.fr/documenta...ecteur-wfs-ogc

    Si quelqu'un a un exemple en Javascript natif (sans Node.JS).

    J'ai l'impression qu'il y a vraiment une piste avec ces WFS.

    Xav

  4. #4
    Membre éclairé Avatar de elias couppe
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2014
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 428
    Points : 823
    Points
    823
    Par défaut
    Il ne s'agit pas de WFS, mais d'un flux de tuiles vectorielles (.pbf) (https://geoservices.ign.fr/documenta...ielles-tmswmts)

    Voici un exemple avec API extensions gp pour openlayers qui ajoute un widget d'import de couches + un controle de getFeatureInfo pour avoir les infos au clic sur les couches tuiles vectorielles :

    Code javascript : 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
                    // Création de la map
                    var map = new ol.Map({
                      target : "map",
                      layers : [
                        new ol.layer.GeoportalWMTS({
                          layer : "GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2"
                        })
                      ],
                      view : new ol.View({
                        center : [288074.8449901076, 6247982.515792289],
                        zoom : 8
                      })
                    });
     
                    var layerImport = new ol.control.LayerImport({
                        collapsed : false,
                        layerTypes : ["MapBox"],
                        webServicesOptions : {
                            proxyUrl : "https://localhost/proxy/proxy.php?url=",
                            noProxyDomains : ["localhost"]
                        }
                    });
                    map.addControl(layerImport);
     
                    var layerSwitcher = new ol.control.LayerSwitcher({});
                    map.addControl(layerSwitcher);
                    var info = new ol.control.GetFeatureInfo({
                        options : {
                            auto : true,
                            active: true,
                            defaultInfoFormat: "text/html",
                            defaultEvent: "singleclick",
                            cursorStyle: "pointer",
                            // noProxyDomains: [],
                            // proxyUrl: ""
                        }
                    });

    Cet exemple prend en compte le contrôle d'import, mais il est également possible de directement rajouter à sa carte une couche de tuiles vectorielles puis de l'interroger via le control getFeatureInfo.

    A noter en analysant le contenu des tuiles vectorielles renvoyé à l'aide du plugin chrome mapbox vector tile (https://chrome.google.com/webstore/d...oehbajfgbofdpk avec .*\/(?<z>\d+)\/(?<x>\d+)\/(?<y>\d+)\.pbf[^\/]*$ en URL pattern) que la géométrie des features est évidemment renvoyée.

    Nom : Capture d’écran du 2023-04-27 16-34-46.png
Affichages : 649
Taille : 70,7 Ko

    Notre controle GFI n'affiche juste pas la propriété Geometry.

    Donc deux solutions possibles parmis d'autres :
    - surcharger le controle GFI (fonction GFIUtils/features2html dans l'extension pour ol)
    - faire directement avec la librairie sous-jacente.

    Par exemple avec OpenLayers, voir la fonction forEachFeatureAtPixel (https://openlayers.org/en/latest/api...FeatureAtPixel) qu'on pourra rattacher à un événement clic :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            // couches vecteur : on remplit un tableau avec les features à proximité.
            var features = [];
            map.forEachFeatureAtPixel(pixel, function (feature, layer) {
                    features.push(feature);
            });

    Features contiendra toutes les propriétés des features récupérées sous le clic (qu'on peut trier en amont si on ne veut pas de certaines couches). Une fonction permettant de rendre lisibles ou de trier/manipuler les infos récupérées pourra ensuite être appelée pour les afficher.


    PS : je viens de découvrir l'existence de ce style https://wxs.ign.fr/static/vectorTile...ti_etages.json qui affiche le bati du bleu au rouge selon son nombre d'étage (https://geoservices.ign.fr/documenta...s/styles#39354)

  5. #5
    Membre actif
    Homme Profil pro
    Architecte progiciel et développeur informatique
    Inscrit en
    Février 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte progiciel et développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 236
    Points : 298
    Points
    298
    Par défaut
    Merci Elias, je vois tout ça.

    Merci encore.

    Xav

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2023
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Documentation variable
    Bonjour,

    Interessante discussion,auriez vous un lien a fournir pour obtenir une definition des variables ?

    Merci, ER

Discussions similaires

  1. Connaitre la hauteur d'un texte RTF imprimé via le RichTextBox
    Par Harry_polin dans le forum Windows Forms
    Réponses: 1
    Dernier message: 11/02/2013, 22h09
  2. [FPDF] Connaitre la hauteur d'un caractère d'une police.
    Par dacid dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 04/02/2010, 11h16
  3. Connaitre la hauteur du contenu d'un iframe
    Par Mister Nono dans le forum jQuery
    Réponses: 6
    Dernier message: 24/01/2010, 12h23
  4. Connaitre la hauteur d'une ligne dans un TMemo
    Par bubulemaster dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2009, 14h52
  5. [Javascript] Connaître la hauteur d'un tableau HTML dynamique ?
    Par renaud26 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/04/2006, 17h35

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