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 :

Affichage des KMLs - Problèmes de couleurs


Sujet :

IGN API Géoportail

  1. #1
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Affichage des KMLs - Problèmes de couleurs
    Bonjour,

    voilà, je vous écrit pour vous faire part d'un problème qui persiste depuis plusieurs jours maintenant, et après maintes recherches, je n'ai trouvé aucune réponse.

    C'est donc vers vous que j'essaye de me tourner pour espérer trouver une solution. Je vous explique mon problème:

    Travaillant dans une société qui travaille généralement sous MapInfo 8.5, j'ai essayé de créer un module cartographie avec l'API de Géoportail pour que le site Extranet puisse mettre en ligne, sans difficulté, des cartes en format .kml ou .gpx pour le site.

    Je me sers de mon côté d'un petit logiciel (ogr2gui) pour faire la conversion d'un .tab vers un .kml. Tout fonctionne, la carte s'affiche très bien et les informations sont conservées, mais comme le titre le laisse suggérer, la couleur n'est jamais la bonne (par exemple pour des lacs, Géoportail les affichent en rouge)

    Bien sûr, c'est le même principe avec les .gpx, aucune des deux ne semblent vouloir afficher la bonne couleur, alors que sous MapInfo, elle est bien bleue.

    Comme une image vaut mieux que 1000 discours:


    J'espère sincèrement que vous allez pouvoir m'aider pour ce problème, car il peut paraître anodin, mais dans mon cas, il l'est loin de l'être.

    Merci par avance.

  2. #2
    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
    Une Url pour analyser le code...
    Merci.

    _____________
    - Le site de l'Observatoire de Haute-Loire (obs43.fr)
    - Voir une vidéo de présentation (2 min.) de l'Observatoire de Haute-Loire

  3. #3
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Je met directement le code, car le site est actuellement en local:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <div id="viewerDiv"></div>
        <script type="text/javascript"><!--//--><![CDATA[//><!--
    	 window.onload= function() {
            Geoportal.load(
                // div's ID:
                'viewerDiv',
                // API's keys:
                ['XXX'],
                {// map's center :
                    // longitude:
                    lon:5.34,
                    // latitude:
                    lat:49.181,
                },
    			//zoom
    			11,
    			{// les options
    			viewerClass:Geoportal.Viewer.Default, //pour mettre la boite à outil standard (zoom, coordonnées, gestion des couches de données..)
    			layers:['ORTHOIMAGERY.ORTHOPHOTOS:WMSC', 'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC'],
    			layersOption:{	'ORTHOIMAGERY.ORTHOPHOTOS:WMSC':{visibility:true,opacity:0.65},
    							'GEOGRAPHICALGRIDSYSTEMS.MAPS:WMSC':{visibility:true,opacity:0.1},
    							},//fin des options des couches Géoportail			
    				//overlay{...} sert à ajouter des couches locales (gpx et kml) et des web services (wms)
    			overlays:{	/*'gpx':[{'name':'Cours d\'eau 2', 'url':'tt.gpx', options:{minZoomLevel:5,maxZoomLevel:13}}],*/
    						<?php
    						$bdd="XXX";
    						$login="XXX";
    						$pass="XXX";
    						$db="couche";
    						
    						$connex=mysql_connect($bdd,$login,$pass);
    						mysql_select_db($db);
    						
    						$select = 'SELECT nom_kml,fichier_kml FROM couche_kml';
    						$result = mysql_query($select,$connex) or die ('Erreur : '.mysql_error() );
    						$total = mysql_num_rows($result);
    						
    						if($result)
    						{
    						echo "'kml':[";
    						while($row = mysql_fetch_array($result))
    							{
    							echo "{'name':'".$row["nom_kml"]."', 'url':'".$row["fichier_kml"]."', options:{minZoomLevel:5,maxZoomLevel:13}},";
    							}
    						echo "],";
    						}
    						?>
    					}//fin de overlays
    			
    			}//fin des options
            );
        };	
        //--><!]]></script>

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 442
    Points : 502
    Points
    502
    Par défaut CSS?
    est-ce que la page a des CSS pour les données vecteurs ajoutées ou le style par défaut de l'API est utilisé?

  5. #5
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Alors tout est par défaut pour l'API de GéoPortail, et à l'heure actuelle, aucune page CSS n'as été créée.

  6. #6
    Membre régulier
    Homme Profil pro
    Webmaster perso, Géomatique travail
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster perso, Géomatique travail
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Il faut donner du style(couleur, épaisseur ...) aux données!

    La transformation en kml ne le fait sans doute pas
    soit on le fait dans le kml
    soit on le fait lors de l'affichage :
    voir cet exemple qui peut peut être aider.

    http://atlasnw.free.fr/geoportail/ex...rojet-ign.html

    Bon courage
    Olivier

  7. #7
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Et si on veux le faire à l'affichage par exemple, comment fait-on ?

    Merci en tous cas d'essayer de m'aider

  8. #8
    Membre régulier
    Homme Profil pro
    Webmaster perso, Géomatique travail
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster perso, Géomatique travail
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par AMAPE Voir le message
    Et si on veux le faire à l'affichage par exemple, comment fait-on ?

    Merci en tous cas d'essayer de m'aider
    c'est justement ce lien http://atlasnw.free.fr/geoportail/ex...rojet-ign.html
    le kml n'a pas de couleur définie, la variable de remplissage a été mise à zéro (non rempli)
    l'appli défini des couleurs en fonction de la valeur CODE_MAJ du kml à savoir 'PT' 'PP' 'MAIS' 'CER' 'AC' 'OLEA' 'AU' 'PROT' 'GEL'

    voir aussi discussion http://www.developpez.net/forums/d11...es-cliquables/

    Olivier

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur cartographe
    Inscrit en
    Avril 2009
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 173
    Points : 4 224
    Points
    4 224
    Par défaut
    On pourrait avoir un KML

    Parce qu'ogr2gui n'est (sans le déprécier) qu'une interface au dessus de ogr2ogr qui permet de transformer un format en un autre et je ne vois pas le support des couleurs dans aucune des documentations MapInfo et KML.

    Il faudrait donc créer les styles comme l'écrit justement momo8508

  10. #10
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par dgrichard Voir le message
    On pourrait avoir un KML

    Parce qu'ogr2gui n'est (sans le déprécier) qu'une interface au dessus de ogr2ogr qui permet de transformer un format en un autre et je ne vois pas le support des couleurs dans aucune des documentations MapInfo et KML.

    Il faudrait donc créer les styles comme l'écrit justement momo8508
    En faite, je viens de résoudre mon problème, je vous indique sa solution:

    Lors de la conversion, le KML perd la couleur que MapInfo lui a mise par défaut, c'est momo qui m'as mis sur la voie, j'ai essayé donc de modifier ce fichier KML, et grande surprise: C'est en faite un fichier XML déguisé ! Les balises color contenait le code couleur suivant: ff0000ff, ce qui correspond à rouge. Je n'avais donc plus qu'à modifié le code couleur par la bonne avec NotePad++, et surprise, ça marche !

    Merci à vous tous de m’avoir aidé. Mon problème est résolu

  11. #11
    Membre régulier
    Homme Profil pro
    Webmaster perso, Géomatique travail
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster perso, Géomatique travail
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Oui mais cela oblige à modifier toute les balises color du kml
    Et dans certains cas il peut y en avoir beaucoup!

    En appliquant un style c'est plus rapide.
    Même pour certains gpx qui n'ont pas de balise color.

    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
    var style1 = new OpenLayers.StyleMap({
          "default": new OpenLayers.Style({
            strokeColor: '#0000ff',
            strokeWidth: 3
          }),
          "select": new OpenLayers.Style({
            strokeColor: '#3399ff',
            strokeWidth: 3
          })
        });
    viewer.getMap().addLayer( "GPX", "2009ped",
                                "http://randonnee.pedestre85.free.fr/rando/parcours/2009/ped2009flaive17.gpx",
                {
                  styleMap: style1,
                  minZoomLevel:0,
                  maxZoomLevel:20
                }
        );
    dans ton cas cela marche peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    overlays:{	/*'gpx':[{'name':'Cours d\'eau 2', 'url':'tt.gpx', options:{styleMap: style1,minZoomLevel:5,maxZoomLevel:13}}],*/
    Olivier

  12. #12
    Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci de l'astuce, en effet, cela pourra être utile

  13. #13
    Candidat au Club
    Homme Profil pro
    chargé d'études
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : chargé d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par momo8508 Voir le message
    Oui mais cela oblige à modifier toute les balises color du kml
    Et dans certains cas il peut y en avoir beaucoup!

    En appliquant un style c'est plus rapide.
    Même pour certains gpx qui n'ont pas de balise color.

    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
    var style1 = new OpenLayers.StyleMap({
          "default": new OpenLayers.Style({
            strokeColor: '#0000ff',
            strokeWidth: 3
          }),
          "select": new OpenLayers.Style({
            strokeColor: '#3399ff',
            strokeWidth: 3
          })
        });
    viewer.getMap().addLayer( "GPX", "2009ped",
                                "http://randonnee.pedestre85.free.fr/rando/parcours/2009/ped2009flaive17.gpx",
                {
                  styleMap: style1,
                  minZoomLevel:0,
                  maxZoomLevel:20
                }
        );
    dans ton cas cela marche peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    overlays:{	/*'gpx':[{'name':'Cours d\'eau 2', 'url':'tt.gpx', options:{styleMap: style1,minZoomLevel:5,maxZoomLevel:13}}],*/
    Olivier
    -----------------------------------------------------------------------
    Bonjour,
    je viens de lire vos échanges.
    Je ne suis pas du tout calé en langage html alors je vous pose cette question :
    J'ai un fichier kml issu de mapinfo contenant plusieurs vecteurs. J'ai le même souci de couleur. Lorsque j’intègre mon kml dans le géoportail, la couleur est bleue claire par défaut. (code = ff0000ff)
    Comment peut on la modifier sachant qu'il y a beaucoup de vecteurs dans mon fichier kml ?
    J'ai essayé de faire via le bloc note un "rechercher/remplacer" mais ça ne fonctionne pas !
    J'ai bien compris que vous aviez des solutions mais j'aimerais avoir des indications supplémentaires.
    Merci...

  14. #14
    Membre régulier
    Homme Profil pro
    Webmaster perso, Géomatique travail
    Inscrit en
    Janvier 2012
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Webmaster perso, Géomatique travail
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    http://randonnee.pedestre85.free.fr/...es-v13-v2.html
    Sur ce lien, les communes sont affichées de couleurs différentes selon le code de l'arrondissement.
    Pourtant dans le kml, chaque vecteur a la même valeur de couleur "<color>ff0000ff</color>"

    voici le code de ma fonction affiche
    symb1 correspond au numéro d'arrondissement
    CODE_ARR est la valeur arrondissement dans le kml

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     function affiche() {
      
       var symb1= {
       '1'   :{fillColor:'#0DF20D',    strokeWidth:2},                 
       '2'   :{fillColor:'#008000',    strokeWidth:2},           
       '3'   :{fillColor:'#D99226',    strokeWidth:2},
       };
        var contextMAJ = function(feature) {
        return { 'CODE_ARR': feature.attributes['CODE_ARR'].value };
        }
          
       var styles = new OpenLayers.StyleMap({
        "default": new OpenLayers.Style({
          strokeColor:'#000000',
          strokeWidth:2,
          fillColor:'#ff00ff',
          fillOpacity:0.5
        }),
        "temporary": new OpenLayers.Style({
          strokeColor:'#00ff00',
          strokeWidth:2,
          fillColor:'#00ff00',
          fillOpacity:0.5
        }),
        "select": new OpenLayers.Style({
          strokeColor:'#00ff00',
          strokeWidth:2,
          fillColor:'#0000ff',
          fillOpacity:0.5
        })
      });
        styles.addUniqueValueRules('default','CODE_ARR',symb1,contextMAJ);
      
       
      kmlLayer = viewer.getMap().addLayer(
        "KML",
        "communes",
        "http://randonnee.pedestre85.free.fr/analysethematique/vendee.kml",
        {
          styleMap:styles,
          visibility: true,
          panMapIfOutOfView:false,
          minZoomLevel: 6,
          maxZoomLevel: 16
          },
         {
         formatOptions:{
            backgroundColor:'green',
            opacity:0.75,
            extractStyles:false // désactivation des styles
          },
          onSelect: ouvrePopup,
          onUnselect: outPopup,
          hover: false // Ouverture au sélect = false. Au survol = true
      });
    
     
    }//fin fonction
    La modification de la couleur se fait donc lors de l'affichage : le kml n'est pas modifié.
    bon courage
    Olivier

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

Discussions similaires

  1. Problème d'affichage des textes issus de fichiers KML
    Par wikimaginot dans le forum IGN API Géoportail
    Réponses: 10
    Dernier message: 07/01/2013, 12h28
  2. affichage des kml : visibility : true et visibility : false
    Par sig_PNRun dans le forum IGN API Géoportail
    Réponses: 3
    Dernier message: 20/05/2012, 16h33
  3. Affichage des menus en 256 couleurs
    Par steph_jvs dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 05/06/2007, 15h52
  4. [office]problème d'affichage des couleurs
    Par doc_nounours dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 09/07/2006, 11h18
  5. Réponses: 1
    Dernier message: 22/02/2006, 10h56

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