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 :

exemples api 3d


Sujet :

IGN API Géoportail

  1. #1
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut exemples api 3d
    Les exemples api 3d sont-ils toujours opérationnels?
    Ici, >>> error Uncaught TypeError: Cannot read property 'addComponent' of null

  2. #2
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    J'ai constaté le même dysfonctionnement chez moi hier soir. Ce matin, arrivé au bureau, tout fonctionne. Les exemples et l'API 3D en eux-mêmes ne sont donc pas fautifs, il est possible qu'il puisse s'agir d'une question de configuration matérielle et logicielle.

    première piste : as-tu bien la dernière version du plugin 3D dans ton environnement de travail ? Au besoin, la dernière version publique est téléchargeable ici : http://www.geoportail.gouv.fr/plugin3d. Si tu es sous Windows, tu dois en être à la version 2007.

  3. #3
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Mais ne serait-il pas possible qu'il y ait un controle de l'existence de plugin 3D, de sa validité...
    Et en cas d’absence, un message quelconque pour renvoyer sur la dernière version?

    Parce qu'actuellement, je soupçonne que beaucoup de testeurs doivent se poser des questions avec ces exemples API3D...

  4. #4
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Tu as probablement raison.
    En l'état, l'API 3D n'est utilisée que de façon très marginale, et le plugin 3D est maintenu par un prestataire que nous avons parfois du mal à relancer. Les améliorations sur cette API 3D ne sont donc pas notre priorité.

  5. #5
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Les améliorations sur cette API 3D ne sont donc pas notre priorité.
    J'avais déjà constaté cela. D'un coté c'est dommage parce que cela me permettrait de m'ouvrir sur un nouveau domaine, mais d'un autre je comprends bien qu'il faut se fixer des priorités...

  6. #6
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    J'apporte tout de même un gros bémol à ce pessimisme : si nous avons du mal à maintenir et faire évoluer l'API 3D actuelle, on est en revanche très actif sur le domaine de la 3D pour tenter de trouver une solution basée sur du JS et du WebGL, indépendante d'un plugin, et sur laquelle nous pourrions avoir la main. C'est par exemple le but des essais effectués via Cesium sur cette page : http://api.ign.fr/tech-docs-js/examp...talCesium.html. Hors de question donc de mettre de coté la problématique de la 3D

  7. #7
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    J'avais bien vu cet exemple, mais j'avais du mal à en saisir toute sa dimension 3D.
    J'y suis retourné, mais beaucoup de chose me laisse encore sur ma faim...
    Un autre exemple avec un zoom plus élevé sur une zone montagneuse pour mettre en évidence le relief, serait utile à des néophytes....
    Non?

  8. #8
    Membre éclairé Avatar de jrenard
    Homme Profil pro
    Webdesigner / développeur front-end
    Inscrit en
    Septembre 2013
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webdesigner / développeur front-end
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2013
    Messages : 456
    Points : 894
    Points
    894
    Par défaut
    Citation Envoyé par cmail Voir le message
    J'avais bien vu cet exemple, mais j'avais du mal à en saisir toute sa dimension 3D.
    J'y suis retourné, mais beaucoup de chose me laisse encore sur ma faim...
    Un autre exemple avec un zoom plus élevé sur une zone montagneuse pour mettre en évidence le relief, serait utile à des néophytes....
    Non?
    Bonjour Christian,
    Je m'aperçois que j'ai oublié de répondre à cette question
    Evidemment cet exemple n'est pas pleinement opérationnel, on va dire que c'est un essai de développement exploratoire qui pourrait ouvrir vers quelque chose de mieux. Normal donc qu'il te laisse sur ta faim sur plusieurs points.

    As-tu finalement résolu l'erreur qui a motivé la création de ce sujet ?

  9. #9
    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 Exemples 3D CesiumJS
    Bonjour Christian,

    en poste depuis peu au géoportail, je m'occupe de la problématique 3D.

    J'ai pu un peu manipuler CesiumJS, et voici un exemple qui permet d'un peu mieux illustrer le potentiel de cette solution, et notamment sa dimension 3D :
    http://depot.ign.fr/geoportail/api/c...um_Relief.html

    Bien entendu, cet exemple est loin d'être complet, et il faut encore explorer les différentes possibilités offertes par CesiumJS. Mais j'espère néanmoins qu'il pourra vous éclairer !

    Elias Couppé, de l'équipe API du Géoportail de l'IGN

  10. #10
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Bonjour Elias,
    Bien vu ton exemple.
    A moment perdu, je vais le tester plus sérieusement.... Et y introduire un gpx (par exemple ceux de pedro) avec quelques icones pour voir comment cela répond...

    A bientôt donc...

  11. #11
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Bonjour Elias,
    J'ai repris ton exemple, et c'est un peu la panique!
    Voici ma page http://essai.obs43.fr/essai2015-3D.html

    Dans un premier temps (sinon je vais vous noyez dans un tsunami de questions!!!):
    1/ En l'état, j'ai dès le début une erreur sur http://depot.ign.fr/geoportail/api/c...06_XYS_14.json
    Puis un message m'indiquant ce qui suit :
    Une demande multi-origines (Cross-Origin Request) a été bloquée : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur http://depot.ign.fr/geoportail/api/c...06_XYS_14.json. Ceci peut être corrigé en déplaçant la ressource sur le même domaine ou en activant CORS.
    Ensuite, dans les premiers essais de chargement, j'obtiens bien cesium. Mais quand je recharge plusieurs fois de suite, cela se plante définitivement (écran navigateur vide et aucune info dans firebug), même si je vide ma mémoire cache. Il faut fermer l'onglet pour réinitialiser correctement.

    2/ Ceci dit, je n'arrive même pas à remplacer la couche GEOGRAPHICALGRIDSYSTEMS.MAPS par ORTHOIMAGERY.ORTHOPHOTOS.

  12. #12
    Membre averti Avatar de lowzonenose
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 196
    Points : 407
    Points
    407
    Par défaut proxy
    Pour ton problème de Cross-Origin , tu peux mettre en place un proxy.
    Cesium possède cette option (cf. https://cesiumjs.org/2013/01/04/Cesi...yers-Tutorial/).
    Sinon, tu peux aussi bien héberger sur ton site les sources de Cesium.

  13. #13
    Membre averti Avatar de lowzonenose
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 196
    Points : 407
    Points
    407
    Par défaut ORTHOIMAGERY.ORTHOPHOTOS
    Je ne rencontre pas de problème à changer de couche d'affichage dans l'exemple 3D !?
    Sur l'exemple geoportalCesium_Relief, on substitue la couche carte par celle de la photo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (...)
    var carteLayerConf= Geoportal.Catalogue.CONFIG["ORTHOIMAGERY.ORTHOPHOTOS$GEOPORTAIL:OGC:WMTS"] ;
    (...)
    var ignMapLayer = layers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
            url :  gGEOPORTALRIGHTSMANAGEMENT[gGEOPORTALRIGHTSMANAGEMENT.apiKey].resources['ORTHOIMAGERY.ORTHOPHOTOS:WMTS'].url,
            layer : 'ORTHOIMAGERY.ORTHOPHOTOS',
    (...)

  14. #14
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Pour ton problème de Cross-Origin , tu peux mettre en place un proxy.
    Cesium possède cette option (cf. https://cesiumjs.org/2013/01/04/Cesi...yers-Tutorial/).
    Sinon, tu peux aussi bien héberger sur ton site les sources de Cesium.
    Ok! Mais les deux me posent problème! Je ne suis pas dégourdi!
    Passons sur le proxy, inutile si je maitrise les sources cesium...
    Je charge donc tout le répertoire "cesium-1.6/source" sur mon serveur...
    Mais le nombre d'erreurs est très importante????
    Je me demande s'il ne faut pas autre choses? Peut-être ce qui se trouve dans /thirdparty????

    Je ne rencontre pas de problème à changer de couche d'affichage dans l'exemple 3D !?
    Cela est bizarre! Je reprends les mêmes essais que ce matin et cela est ok, en effet.
    A mes premiers essais, cela bloquait. >>>> En fait, je m'aperçois que sous FF si on recharge 2 fois césium dans le même onglet, avec firebug ouvert, mon ff affiche un écran blanc et si j'insiste FF se ferme en mentionnant une erreur!

  15. #15
    Membre averti Avatar de lowzonenose
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 196
    Points : 407
    Points
    407
    Par défaut sources cesium
    Passons sur le proxy
    dommage car c'est plutôt simple...

    Je charge donc tout le répertoire "cesium-1.6/source" sur mon serveur...
    Non, tu dois charger le répertoire cesium-1.6/build/cesium/

  16. #16
    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
    Salut,

    en effet, le dossier source ne contient que le code de Cesium. Il faut alors le builder.

    Voici la manipulation à suivre (en repartant de zéro ) :

    - Aller sur la page GitHub du projet CesiumJs (https://github.com/AnalyticalGraphicsInc/cesium) et télécharger la branche master sous forme de zip (lien à droite "Download .ZIP"). Le dézipper
    - Depuis la racine du dossier ainsi crée, lancer sur le terminal la commande ./Tools/apache-ant-1.8.2/bin/ant combineRelease
    - Dans le dossier cesium-master/build, deux dossiers sont alors créés : une version minifiée et une autre non minifiée de cesiumJS. C'est l'un de ces dossiers au choix que tu dois copier sur ton serveur.
    - Depuis ta page html, tu dois donc inclure le fichier Cesium.js

    Normalement, cela devrait fonctionner. Sinon, tu peux faire comme préconisé juste au dessus, et directement copier le dossier Cesium, c'est plus simple !

    Elias

  17. #17
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Cela va être long à intégrer tout cela! Pas d'autres exemples IGN en prévision et rapidement?

    Sinon, deux choses simples (en principe, car c'est compliqué pour moi!):
    1/ Comment maitriser baseLayerPicker pour n'avoir plus que deux types de cartes: orthophoto et GEOGRAPHICALGRIDSYSTEMS.MAPS$GEOPORTAIL dedans????? Après avoir lu http://cesiumjs.org/Cesium/Build/Doc...yerPicker.html!
    2/ Comment introduire un kml ? Je crois avoir lu que ce format était supporté (et qu'il n'est pas obligé de passer en czml) Mais même en czml, je suis incapable d'ajouter un tel fichier...

  18. #18
    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
    Bonsoir,

    faisons les choses dans le désordre.
    Je vais donc tout d'abord répondre au point 2, et je jetterai un coup d'oeil au 1 demain.

    Pour le moment, la version "principale" de Cesium ne gère pas encore le kml. La version 1.7 qui va sortir le 2 mars 2015 supportera les balises principales du kml.
    Il est cependant possible d'introduire dès à présent du kml sur Cesium en téléchargeant la branche "KML" (https://github.com/AnalyticalGraphic...esium/tree/kml), et en la buildant comme expliqué dans le message précédent.
    Un fois cela réalisé, l'exemple ci-après montre comment charger un fichier KML sur Cesium (totalement expérimental, aucune donnée IGN sur cet exemple) :
    http://depot.ign.fr/geoportail/api/c...timents3d.html
    Le code suivant charge le fichier nashville.kml (que j'ai en local) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var viewer = new Cesium.Viewer('viewerDiv');
    var scene = viewer.scene;
    var kmlDataSource = new Cesium.KmlDataSource();
    kmlDataSource.loadUrl('../data/nashville.kml');
    viewer.dataSources.add(kmlDataSource);
    Pour le CZML, voici un autre exemple, tout aussi expérimental, qui charge un fichier .gltf (équivalent de collada, tu peux trouver un convertisseur en ligne ici : http://cesiumjs.org/convertmodel.html), et qui l'affiche sur le globe Cesium.
    http://depot.ign.fr/geoportail/api/c...m_3dmodel.html
    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
    var builtInCzml = 
        [
            {
            "id" : "document",
            "version" : "1.0"
            }, 
            {
            "id" : "REU",
            "model" : {
                "gltf" : "../data/reunion.gltf",
                "scale" : 1,
                "show" : [{
                    "boolean" : true
                	}]
                },
                "position":{
                    "cartographicDegrees":[
                        55.2175,-21.0375,0,
                    ]
                }
            }
        ]
    A demain donc, en espérant avoir été assez clair sur ces points !

  19. #19
    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
    Re-bonjour,

    comme promis, j'ai jeté un coup d'oeil au problème du base layer picker sur Cesium.

    Et finalement, ce n'est pas aussi trivial que cela !
    En reprenant directement la doc, je n'y suis pas parvenu...

    Tu peux essayer d'adapter ce qu'il y a ici :
    https://groups.google.com/forum/#!se...M/Jr3pNgTJrzcJ

    J'essayerai dans les prochains jours de fournir un exemple fonctionnel permettant d'ajouter uniquement les couches IGN au layer picker.

    En espérant que cela puisse t'aider.

  20. #20
    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
    Bonsoir,

    petit oubli de ma part . Voici donc un exemple (encore une fois experimental) qui introduit sur Cesium un layer picker constitué des couches "Carte IGN" et "Orthophotos" :
    http://depot.ign.fr/geoportail/api/c...yerPicker.html

    A noter que la dernière version 1.8 de Cesium est utilisée.

    En parlant de 3D, les exemples 3D ont été débuggés/ajoutés sur api.ign.fr (voir : http://api.ign.fr/article/435/l-api-...2-est-en-ligne )

    Bon week-end,

    Elias Couppé

Discussions similaires

  1. Fonctionnement de l'exemple "API Géoportail Flash avec KML"
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 30/12/2010, 12h18
  2. Réponses: 1
    Dernier message: 22/04/2008, 10h20
  3. API SAAJ, besoin d'exemple
    Par rikku84 dans le forum Services Web
    Réponses: 3
    Dernier message: 11/04/2008, 01h07
  4. exemple api sql avec easyphp
    Par cedni dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/10/2007, 16h08
  5. [Regex] exemple de l'API optimisable ?
    Par Celeborn dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 10/12/2005, 23h52

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