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 :

export map openlayers en local


Sujet :

IGN API Géoportail

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 73
    Points : 40
    Points
    40
    Par défaut export map openlayers en local
    bonjour
    un fichier index.html qui tourne dans un mini serveur en localhost
    j'ai donc une map en openlayers avec différentes couches wmts et vector,
    et j'essaie de l'exporter sans succès en png ou jpg ou en pdf.
    j'ai vu les exemple et ça ne fonctionne pas.
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     var exportPNGElement = document.getElementById('export-png');
    exportPNGElement.addEventListener('click', function(e) {
        map.once('postcompose', function(event) {
          var canvas = event.context.canvas.toDataURL('image/png');
        });
        map.renderSync();
      }, false);
    et la console me dit :
    (index):367 Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
    at G.<anonymous> (http://localhost:2035/:367:38)
    at G.b (http://localhost:2035/v4.0.1/build/ol.js:41:394)
    at G.Dc.b (http://localhost:2035/v4.0.1/build/ol.js:44:213)
    at di (http://localhost:2035/v4.0.1/build/ol.js:171:223)
    at ci.vg (http://localhost:2035/v4.0.1/build/ol.js:172:470)
    at G.k.hp (http://localhost:2035/v4.0.1/build/ol.js:290:155)
    at G.<anonymous> (http://localhost:2035/v4.0.1/build/ol.js:276:292)
    at G.k.ip (http://localhost:2035/v4.0.1/build/ol.js:287:462)
    at HTMLButtonElement.<anonymous> (http://localhost:2035/:369:9)
    
    que faire svp ?

  2. #2
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 632
    Points
    632
    Billets dans le blog
    2
    Par défaut
    Cet exemple permet de répondre à l'export en PDF en intégrant les données vecteurs : http://openlayers.org/en/latest/exam...xport-pdf.html

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 73
    Points : 40
    Points
    40
    Par défaut
    j'avais déjà vu cet exemple et l'avais décliné car il ne me convient pas :
    il n'exporte pas la vue à la taille où on la voit.
    cette histoire de résolution ne fonctionne pas car jspdf ne gère pas la résolution.
    c'est juste un artifice qui ne change rien à la résolution :
    test fait sur les 3 "résolutions"à agrandissement égal la qualité de l'image est égale, soit la résolution de l'écran.
    Cet exemple ne fonctionne pas en local non plus
    même erreur que précédemment
    console
    (index):127 Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
    at http://localhost:2040/:127:33
    


  4. #4
    Membre confirmé

    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2017
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2017
    Messages : 282
    Points : 632
    Points
    632
    Billets dans le blog
    2
    Par défaut
    L'autre solution, souvent utilisée dans pour les précédents dev en openlayers est l'utilisation de phantomJs et comme vous avez la main sur votre serveur (puisqu'en localhost), c'est parfait.

    Le billet est vieux mais toujours d'actualité : https://blog.atolcd.com/index.php/20...-web-la-suite/

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 73
    Points : 40
    Points
    40
    Par défaut
    j'avais déjà vu des exemples de phantomjs
    je regarderai ça demain
    merci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 73
    Points : 40
    Points
    40
    Par défaut
    bonsoir
    en fait je n'y arrive pas
    si je comprends bien Phantomjs est une sorte de console à laquelle on passe des commandes.
    mais comment passe-t-on ces commandes depuis un javascript dans la page index.html ?
    pour voir j'ai essayé la commande suivante depuis la console de windows :
    .\essai\phantomjs-2.1.1-windows\bin\phantomjs.exe .\essai\phantomjs-2.1.1-windows\examples\rasterize_element.js http://localhost:2043 map.png '#map'
    eh bien cela met un certain temps pour charger la page puis affiche une erreur :
    Loading page...
    Getting element clipRect...
    SyntaxError: DOM Exception 12: An invalid or illegal string was specified.

    undefined:2 in querySelector
    :2
    :4
    TypeError: null is not an object (evaluating 'clipRect.top')

    phantomjs://code/rasterize_element.js:35
    alors je suis un peu désespéré pour un simple export

Discussions similaires

  1. openlayers + Export Map
    Par owenho dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 04/12/2012, 17h56
  2. export CSV vers dique local
    Par michael410 dans le forum Langage
    Réponses: 3
    Dernier message: 13/02/2011, 12h53
  3. Exporter des photos en local
    Par shaun_the_sheep dans le forum C#
    Réponses: 1
    Dernier message: 08/06/2010, 10h18
  4. [Google Maps] Utilisation en local avec carte perso
    Par maxredphenix dans le forum SIG : Système d'information Géographique
    Réponses: 3
    Dernier message: 19/05/2010, 11h50
  5. [Conception] Export de base locale sur le serveur
    Par Destampy dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 14/06/2005, 14h24

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