Les exemples api 3d sont-ils toujours opérationnels?
Ici, >>> error Uncaught TypeError: Cannot read property 'addComponent' of null
Les exemples api 3d sont-ils toujours opérationnels?
Ici, >>> error Uncaught TypeError: Cannot read property 'addComponent' of null
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.
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...
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é.
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...Les améliorations sur cette API 3D ne sont donc pas notre priorité.
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![]()
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 ?
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
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...
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 :
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.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.
2/ Ceci dit, je n'arrive même pas à remplacer la couche GEOGRAPHICALGRIDSYSTEMS.MAPS par ORTHOIMAGERY.ORTHOPHOTOS.
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.
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', (...)
Ok! Mais les deux me posent problème! Je ne suis pas dégourdi!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.
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????
Cela est bizarre! Je reprends les mêmes essais que ce matin et cela est ok, en effet.Je ne rencontre pas de problème à changer de couche d'affichage dans l'exemple 3D !?
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!
dommage car c'est plutôt simple...Passons sur le proxy
Non, tu dois charger le répertoire cesium-1.6/build/cesium/Je charge donc tout le répertoire "cesium-1.6/source" sur mon serveur...
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
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...
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) :
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.
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);
http://depot.ign.fr/geoportail/api/c...m_3dmodel.html
A demain donc, en espérant avoir été assez clair sur ces points !
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, ] } } ]
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.
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é
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager