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

JavaScript Discussion :

[SVG 1.1] Affichage d'une couche GEOMETRY


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 308
    Par défaut [SVG 1.1] Affichage d'une couche GEOMETRY
    Bonjour,

    Je ne sais pas si c'est le forum adéquat pour ce message. Mais, puisque j'utilise javascript, j'ai décidé de le mettre ici.

    J'ai une table "polygones" stockée sur une BD PostGIS 1.5. La colonne géométrique est de type GEOMETRY. Ce que je veux c'est afficher ces polygones sur un navigateur web.
    Pour cela, je me suis connecté à la BD avec PHP pour récupérer les champs de type GEOMETRY de tous les polygones. Ensuite, je les ai transformé en PATH avec la fonction st_assvg(). Finalement, avec du javascript, j'ai créé l'élément SVG et les éléments PATH fils de ce dernier en utilisant la fonction createElementNS().
    Le problème est que je n'arrive pas à afficher ces éléments PATH sur le navigateur.

    Est-ce que j'ai oublié une étape ? Faut-il traiter l'échelle d'affichage et le système de coordonnées ?

    Ce que je ne comprend pas est que lorsque je crée un élément autre que PATH ça marche.

    Par exemple une ligne s'affiche correctement sur FF et Chrome (mais pas sur IE)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
    var line = document.createElementNS("http://www.w3.org/2000/svg", "line");
                    line.setAttribute("x1", 200);
                    line.setAttribute("y1", 0);
                    line.setAttribute("x2", 0);
                    line.setAttribute("y2", 200);
                    line.setAttribute("stroke", "black");
                    svg.appendChild(line);
    Alors qu'un PATH ne s'affiche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pa=document.createElementNS("http://www.w3.org/2000/svg", "path");
                    pa.setAttribute('d','M-2208 1425l-4 4 -7 17 -8 14 -12 12 -7 7');
                    svg.appendChild(pa);

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2008
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 308
    Par défaut
    Résolu.

    Il vaut mieux utiliser une balise "<embed/>" et ajouter le svg comme un plugin. j'ai fait donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <embed src='image.svg' width='1000' height='1000' type='image/svg+xml' pluginspage='http://www.adobe.com/svg/viewer/install/' />
    Et dans src je mets le chemin vers le fichier svg créé proprement en xml. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?xml version='1.0' standalone='no'?>
    <!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
    <svg style='cursor:crosshair' width='1000' height='1000' version='1.1' xmlns='http://www.w3.org/2000/svg'>
    <path fill='lightsteelblue' stroke='midnightblue' stroke-width='5' d='M 10 10 L 10 20 20 20 20 15 Z'/>
    </svg>

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    non ce n'est pas le mieux
    mais malheureusement IE ne gère pas le SVG
    (enfin il y vient dans ces dernière versions)

    donc pas le choix soit tu détecte le suport du SVG par le navigateur et tu te passe du embed soit tu en passe par le plugin
    A+JYT

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

Discussions similaires

  1. Openlayers: affichage d'une couche vecteur
    Par georex dans le forum SIG : Système d'information Géographique
    Réponses: 5
    Dernier message: 11/06/2012, 15h27
  2. affichage d'une couche postgis avec openlayers
    Par georex dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 20/04/2012, 16h15
  3. Affichage d'une couche WMS Diren
    Par Berto974 dans le forum IGN API Géoportail
    Réponses: 9
    Dernier message: 18/12/2009, 19h58
  4. Affichage d'une couche TMS
    Par mga_geo dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 10/10/2009, 10h55
  5. [c#] [SVG] affichage d'une image svg dans un form (pocket pc)
    Par DontNet dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/10/2007, 15h19

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