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 :

Afficher symboles de waypoints GPX


Sujet :

IGN API Géoportail

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Afficher symboles de waypoints GPX
    Rebonjour!

    Pour généraliser mon message sur l'affichage du 'name' des 'waypoints', je serais ravi de pouvoir disposer d'un modèle ("officiel" ou dans la galerie des sites utilisant l'API) où une trace GPX serait représentée d'une manière proche de celle de Google Earth ou de Garmin MapSource, c'est à dire :

    - avec interprétation des <sym> enregistrés dans le GPX lors de l'enregistrement des waypoints;
    - avec le 'name' des waypoints pouvant être affiché à côté de chaque waypoint;
    - avec les autres informations du waypoint (<desc>, <ele>...) pouvant être affichées au survol et non au clic sur le marqueur...

    Ce dernier point est traité de manière convaincante par le site Valroc.net de la galerie, mais je ne trouve pas d'exemple du 1er point... Faut-il recourir à preFeatureInsert pour tester feature.attributes.sym et insérer une image externe en fonction de chaque <sym> différent?

    Merci!

  2. #2
    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
    Peux-tu décrire, exemple à l'appui (GPX + copie d'écran GE/GMS) ce qu'est l'interprétation du <sym>

    Mais ATTENTION: GE et GMS sont des applications lourdes (plusieurs dizaines de Mo), on ne peut pas faire tout dans un butineur en Javascript (ne serait-ce que dessiner des dizaines de milliers de waypoints )

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Mon GPS Garmin m'écrit :

    <wpt lat="44.87690756097436" lon="5.530402427539229">
    <ele>1667.279541015625</ele>
    <name>L 10' Petit torrent</name>
    <date>05-JUL-10 14:32:15</date>
    <sym>Drinking Water</sym>
    </wpt>

    Le <sym> de Garmin est un petit robinet que j'ai choisi lors de la création du waypoint, et que MapSource affiche ainsi :


    L'affichage de GoogleEarth n'est en fait pas très riche ('name' affiché mais pas d'interprétation des symboles) :


    Mon but serait d'afficher :
    - un symbole équivalent à l'emplacement du waypoint;
    - name dans un label;
    - au survol, dans un popup, éventuellement l'altitude et la date, et/ou la <desc> s'il y en a une (mais je ne peux apparemment pas en saisir une sur le terrain sur mon GPS)
    Images attachées Images attachées   

  4. #4
    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
    Il faut alors traiter le sujet via les OpenLayers.StyleMap en utilisant les label et graphic :

    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
     * graphic - {Boolean} Set to false if no graphic is desired.
     * externalGraphic - {String} Url to an external graphic that will be used for rendering points.
     * graphicWidth - {Number} Pixel width for sizing an external graphic.
     * graphicHeight - {Number} Pixel height for sizing an external graphic.
     * graphicOpacity - {Number} Opacity (0-1) for an external graphic.
     * graphicXOffset - {Number} Pixel offset along the positive x axis for displacing an external graphic.
     * graphicYOffset - {Number} Pixel offset along the positive y axis for displacing an external graphic.
     * rotation - {Number} For point symbolizers, this is the rotation of a graphic in the clockwise direction about its center point (or any point off center as specified by graphicXOffset and graphicYOffset).
     * graphicZIndex - {Number} The integer z-index value to use in rendering.
     * graphicName - {String} Named graphic to use when rendering points.  Supported values include "circle" (default),
     * graphicTitle - {String} Tooltip for an external graphic. Only supported in Firefox and Internet Explorer.
     * backgroundGraphic - {String} Url to a graphic to be used as the background under an externalGraphic.
     * backgroundGraphicZIndex - {Number} The integer z-index value to use in rendering the background graphic.
     * backgroundXOffset - {Number} The x offset (in pixels) for the background graphic.
     * backgroundYOffset - {Number} The y offset (in pixels) for the background graphic.
     * backgroundHeight - {Number} The height of the background graphic.  If not provided, the graphicHeight will be used.
     * backgroundWidth - {Number} The width of the background width.  If not provided, the graphicWidth will be used.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    J'ai réussi à substituer les symboles comme je voulais.
    Voici la page avec les explications les plus claires que j'ai trouvées sur l'utilisation des rules, filters etc. :

    http://www.peterrobins.co.uk/it/olstyle.html

    Mon dernier problème est que mes symboles de waypoints (external graphics) sont le plus souvent SOUS la trace de la rando - et parfois au-dessus mais je ne sais pas pourquoi!... Cela ne se produisait pas quand j'utilisais les graphiques internes "circle" ou "triangle". Y a-t-il un moyen simple pour qu'ils soient toujours au-dessus? J'ai essayé de jouer sur les z-index sans succès jusqu'à présent... Bien sûr, charger les waypoints dans leur propre layer, après la trace, résoudrait le problème, mais le chargement en serait sans doute encore ralenti, or il est déjà horriblement lent avec tous les waypoints rendus par des graphiques et leurs labels... (Mais afficher la trace seule par défaut dans sa layer, et les waypoints seulement en option dans la leur résoudrait peut-être les problèmes de vitesse de chargement...!)

    Merci!

  6. #6
    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
    Citation Envoyé par randoz Voir le message
    Mon dernier problème est que mes symboles de waypoints (external graphics) sont le plus souvent SOUS la trace de la rando - et parfois au-dessus mais je ne sais pas pourquoi!...
    Une page pour que l'on voit ?

    Citation Envoyé par randoz Voir le message
    Cela ne se produisait pas quand j'utilisais les graphiques internes "circle" ou "triangle". Y a-t-il un moyen simple pour qu'ils soient toujours au-dessus? J'ai essayé de jouer sur les z-index sans succès jusqu'à présent...
    On avait eu plusieurs discussions sur le sujet sur ce forum. En fouillant un peu, il devrait y avoir des pistes (en particulier l'utilisation de preventDefaultBehavior (Cf. infra) ?!

    Citation Envoyé par randoz Voir le message
    Bien sûr, charger les waypoints dans leur propre layer, après la trace, résoudrait le problème, mais le chargement en serait sans doute encore ralenti, or il est déjà horriblement lent avec tous les waypoints rendus par des graphiques et leurs labels... (Mais afficher la trace seule par défaut dans sa layer, et les waypoints seulement en option dans la leur résoudrait peut-être les problèmes de vitesse de chargement...!)
    Peut-être qu'il faudrait essayer cela :

    * charger le GPX complètement sans dessiner (désactiver le comportement par défaut de l'API);
    * une fois chargé (évènement "loadend"), dessiner les traces, puis dessiner les waypoints en récupérant le z-index de la couche est en l'augmentant (pas sûr néanmoins à tester).

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Une page pour que l'on voit ?
    Toujours cette page horriblement lourde , en cliquant sur une des icones "J1" etc.:
    http://phokal.free.fr/index.php?seul...d=N7&scrollY=0

    Voici un extrait pour ceux qui n'ont pas la patience :


    En plus, comme c'est un site de photos de randos, il faut attendre le chargement des miniatures pour que la carte s'affiche! Bon, il y a beaucoup d'optimisations à faire! Pour le chargement progressif des couches, je vais essayer tes pistes, merci!

    Et je dois encore ré-intégrer les popups façon "valroc.net", et aussi insérer les marqueurs de début "J1" etc. avec un prefeatureinsert au lieu de la prélecture du fichier GPX par un parser XML - à moins qu'au contraire je ne fasse un prétraitement systématique des GPX par le parser et ne sauve la version prétraitée pour qu'elle s'affiche ensuite plus vite! (Voire en transformant les GPX en KML, puisque j'ai cru comprendre que l'on l'on pouvait intégrer dans le KML des styles spécifiques à chaque point, ce qui éviterait tout traitement ultérieur avec les rules et les tests sur des filters qui sont sans doute très lents!

    Si l'affichage est tellement plus lent quand on affiche plein d'objets avec external graphics, labels etc., est-ce que ce n'est pas surtout fonction de la rapidité du PC client, puisque c'est du javaScript? En ce cas je ne sais pas si c'est très utile de se casser la tête à optimiser côté fichier GPX et serveur?

    Et puis il reste le problème des labels qui se superposent quand les points sont trop proches. Le code pour l'éviter doit être un tel casse-tête qu'il vaut sans doute mieux laisser tomber les labels et avoir seulement des popups au survol! - ou voir si on peut activer les labels au survol...
    Images attachées Images attachées  

  8. #8
    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
    Voire en transformant les GPX en KML, puisque j'ai cru comprendre que l'on l'on pouvait intégrer dans le KML des styles spécifiques à chaque point
    C'est certain... D'ou l'intérêt du kml...
    Si l'affichage est tellement plus lent quand on affiche plein d'objets avec external graphics, labels etc., est-ce que ce n'est pas surtout fonction de la rapidité du PC client, puisque c'est du javaScript? En ce cas je ne sais pas si c'est très utile de se casser la tête à optimiser côté fichier GPX et serveur?
    "Plein d'objets", cela représente combien d'objets? Car, il me semble qu'il en faudrait plusieurs centaines pour ralentir d'une manière aussi significative.. L'accès à tes pages, me semble (mais je ne suis pas un grand spécialiste, et je dois me tromper?) , Anormalement longue...Es-tu sur que le problème ne vient pas d'ailleurs?

    Et puis il reste le problème des labels ...
    Connais-tu la page http://api.ign.fr/geoportail/api/doc...alMap_kml.html et en validant la première couche qui pourrait répondre en parti à tes interrogations, non?
    Courage.

  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
    Citation Envoyé par randoz Voir le message
    Toujours cette page horriblement lourde , en cliquant sur une des icones "J1" etc.:
    http://phokal.free.fr/index.php?seul...d=N7&scrollY=0
    Je parlais d'une page test qui ne fait qu'une chose (affichage d'un petit GPX sur zone). Test qui serait possible d'augmenter en fonctionnalité pour atteindre ton objectif.

    Citation Envoyé par randoz Voir le message
    Si l'affichage est tellement plus lent quand on affiche plein d'objets avec external graphics, labels etc., est-ce que ce n'est pas surtout fonction de la rapidité du PC client, puisque c'est du javaScript? En ce cas je ne sais pas si c'est très utile de se casser la tête à optimiser côté fichier GPX et serveur?
    C'est un autre débat, mais le temps de chargement est surtout lié dans un premier temps :

    * aux nombreux chargements de fichier GPX alors que tu n'es pas encore au bon zoom/emprise: charge la carte, change de zoom et centre de la carte, charge les GPX sur demande de l'utilisateur. Par exemple, 9 fichiers sont chargés : le dernier met 1mn50s pour arriver au client ... Rappel: sous IE, seuls 2 URLs sur un même domaine peuvent être effectuées simultanément (8 sous FF);

    * aux photos elles-même (après plusieurs minutes, certaines ne montent pas) tout n'est pas encore arrivé sur mon butineur. Là aussi, il faudrait revoir les principes / fonctionnements de l'application.


    Citation Envoyé par randoz Voir le message
    Et puis il reste le problème des labels qui se superposent quand les points sont trop proches. Le code pour l'éviter doit être un tel casse-tête qu'il vaut sans doute mieux laisser tomber les labels et avoir seulement des popups au survol! - ou voir si on peut activer les labels au survol...
    Là, c'est un problème de carto : est-il utile de tout le temps afficher les labels ? Les afficher au survol des points (comme dans l'exemple KML cité par cmail), etc ...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Afficher un graphicName différent par waypoints GPX
    Bonjour,
    Après des semaines de recherche, je ne trouve pas de réponse à mon besoin qui est le même que "randoz".
    Seule cette discussion de 2010 est similaire à ma recherche, mais cette discussion est sans réponse depuis et pas résolue.
    Je me demandais si depuis le temps ce cas de figure avait trouvé solution.
    Mon besoin est de pouvoir récupérer pour chaque waypoints la valeur de la balise <ele> du fichier GPX et l'affecter au graphicName (valeurs tirées de cette page : http://api.ign.fr/tech-docs-js/examp...aphicName.html).

    Le fichier GPX

    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
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <gpx xmlns="http://www.topografix.com/GPX/1/1" creator="matt" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
    	<wpt lat="47.723163" lon="-1.349655">
    		<ele>museum</ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Musée de la résistance de Châteaubriant</desc>
    		<name>Musée</name>
    	</wpt>
    	<wpt lat="47.724230" lon="-1.347641">
    		<ele>_view_</ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Carrière des fusillés</desc>
    		<name>La Sablière</name>
    	</wpt>
    	<wpt lat="47.795258" lon="-1.413912">
    		<ele>airport</ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Zone de parachutage</desc>
    		<name>Fercé</name>
    	</wpt>
    	<wpt lat="47.501777" lon="-1.578292">
    		<ele>circle</ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Mémorial et camp des maquisards</desc>
    		<name>Le maquis de Saffré</name>
    	</wpt>
    </gpx>
    Le code complét de la carte

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    <div id="viewerDiv" style="min-height:500px;"></div>
    <div id="footer">Mentions Légales - &copy;IGN 2008-2012</div>
    <script type="text/javascript">
    <!-- // script geoportalMap_gpx
    //Copyright (c) 2008-2012 Institut National de l'information Geographique et forestiere France, released under the BSD license.
    /**
     * Property: viewer
     * {<Geoportal.Viewer>} the viewer global instance.
     * La variable viewer est déclarée lors de l'appel au script de chargement de l'api en paramètre de instance, pas besoin de la redéclarer.
     */
    viewer= null;
    //Changement du style de rendu de l'objet selon s'il est selectionné ou pas
    function changeRenderIntent (o) {
        if (o && o.feature) {
            o.feature.renderIntent= o.feature.renderIntent=="default"?
                "select"
            :   "default";
        }
    }
    /**
     * Function: initMap
     * Load the application. Called when all information have been loaded by
     * <loadAPI>().
     */
    function initMap() {
        //L'api est chargée à cette étape
        // ajout tranductions
       /* translate(); */
        //options for creating viewer:
        var options= {
    
            // valeur par défaut
            mode:'normal',
            // default value
            // valeur par défaut
            //territory:'FXX',
            // valeur par défaut
            displayProjection:'IGNF:RGF93G',
    		// taille des logos coin bas droit
    		controlsOptions:{
                    logoSize:30
                }
            // utile uniquement pour charger des resources externes
            //proxy:'/geoportail/api/xmlproxy'+'?url='
        };
    
        // création du visualiseur du type <Geoportal.Viewer>, HTML div id, options
        viewer= new Geoportal.Viewer.Default(
    		"viewerDiv", 
    		OpenLayers.Util.extend(
    			options,
    			// variable contenant la configuration des clefs API remplie par
    			// <Geoportal.GeoRMHandler.getConfig>
    			window.gGEOPORTALRIGHTSMANAGEMENT===undefined? {'apiKey':'.................'} : gGEOPORTALRIGHTSMANAGEMENT)
        );
    //____________Onglet "couches" affiché (true=oui  false=non)
                viewer.setLayersPanelVisibility(true);
    //____________Onglet "couches" développé (true=oui  false=non)
                viewer.openLayersPanel(false);
    //____________Onglet "outils" affiché (true=oui  false=non)        
                viewer.setToolsPanelVisibility(true);
    //____________Onglet "outils" développé (true=oui  false=non)        
                viewer.openToolsPanel(true);
    	// désactive le mouse wheel :
        var c= viewer.getMap().getControlsByClass('OpenLayers.Control.Navigation');
        if (c.length>0) {
            c= c[0];
            c.deactivate();
            c.zoomWheelEnabled= false;
            c.activate();
        }
    	// masque le toolbox navigation control (pan and zoom box) :
        /* c= viewer.getMap().getControlsByClass('Geoportal.Control.NavToolbar');
        if (c.length>0) {
            c= c[0];
            c.div.style.display= 'none';
        } */
    	// change le label du toolbox :
        /* c= viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox');
        if (c.length>0) {
            c= c[0];
            Geoportal.Lang['de']['gpControlToolBox.label']= 'Ebenen';
            Geoportal.Lang['en']['gpControlToolBox.label']= 'Levels';
            Geoportal.Lang['es']['gpControlToolBox.label']= 'Los niveles de';
            Geoportal.Lang['fr']['gpControlToolBox.label']= 'Niveaux';
            Geoportal.Lang['it']['gpControlToolBox.label']= 'Livelli';
            c.changeLang();
        } 
        c= null;
    	*/
        if (!viewer) {
            // problem ...
            OpenLayers.Console.error(OpenLayers.i18n('new.instance.failed'));
            return;
        }
        //Chargement des couches de données
        viewer.addGeoportalLayers([
            'ORTHOIMAGERY.ORTHOPHOTOS',
            'GEOGRAPHICALGRIDSYSTEMS.MAPS',
    		'CADASTRALPARCELS.PARCELS',
    		'HYDROGRAPHY.HYDROGRAPHY',
    		'ADMINISTRATIVEUNITS.BOUNDARIES',
    		'BUILDINGS.BUILDINGS',
    		'ELEVATION.SLOPES',
    		'GEOGRAPHICALNAMES.NAMES',
    		'ELEVATION.LEVEL0',
    		'TRANSPORTNETWORKS.RAILWAYS',
    		'TRANSPORTNETWORKS.ROADS',
    		'TRANSPORTNETWORKS.RUNWAYS',
    		'UTILITYANDGOVERNMENTALSERVICES.ALL'],
                {
    				'ORTHOIMAGERY.ORTHOPHOTOS':{
    					visibility:true,
    					opacity: 1,
    					name:'Photo aérienne'
    				},
    				'GEOGRAPHICALGRIDSYSTEMS.MAPS':{
    					visibility:true,
    					opacity: 0.6
    				},
    				'CADASTRALPARCELS.PARCELS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'HYDROGRAPHY.HYDROGRAPHY':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'ADMINISTRATIVEUNITS.BOUNDARIES':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'BUILDINGS.BUILDINGS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'ELEVATION.SLOPES':{
    					visibility:false,
    					opacity: 0.6,
    					//name:'Altitudes'
    				},
    				'GEOGRAPHICALNAMES.NAMES':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'ELEVATION.LEVEL0':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'TRANSPORTNETWORKS.RAILWAYS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'TRANSPORTNETWORKS.ROADS':{
    					visibility:false,
    					opacity: 1
    				},
    				'TRANSPORTNETWORKS.RUNWAYS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'UTILITYANDGOVERNMENTALSERVICES.ALL':{
    					visibility:false,
    					opacity: 0.6,
    				},
                    global:{
                        transitionEffect: 'resize'
                    }
                });
    
        //La couche GPX allant de 10 à 13, on se met au bon niveau de zoom :
        viewer.getMap().setCenter(viewer.viewerOptions.defaultCenter,10);
        // cache la patience
        viewer.div.style[OpenLayers.String.camelize('background-image')]= 'none';
        //Ajout d'une couche GPX : une ballade en vélo ...
        var gpx= viewer.getMap().addLayer("GPX",
    
            /**
             * layer_name parameter contient le texte qui sera affiché dans le gestionnaire de couches.
             * Les traductions peuvent être mises directement içi !
             */
            { 
                'track.gpx.name':
                {
                    'de':"Reise",
                    'en':"Trip",
                    'es':"Viaje",
                    'fr':"Points intéressants",
                    'it':"Viaggio"
                } 
            },
            /**
             * url_to_gpx parameter Chemin d'accès aux données GPX
             */
    		 
    		 gpx/amrc_parcour_memoire.gpx
    		 
            {
                // gpx_options contient les informations permettant d'affiner le comportement de la couche GPX
                visibility:true,
                opacity:1.0,
                minZoomLevel:0,
                maxZoomLevel:0,
                originators:[{
                    pictureUrl:'',
                    url:''
                }],
                styleMap:new OpenLayers.StyleMap({
                    "default": new OpenLayers.Style(
                        OpenLayers.Util.applyDefaults({
                            fillColor: "#03C51B",
                            fillOpacity: 1,
                            strokeColor: "#03C51B",
                            strokeWidth: 2,
                            graphicZIndex: "${zIndex}",
    						// forme du marqueur, voir http://api.ign.fr/tech-docs-js/examples/geoportalMap_graphicName.html
                            graphicName: "${getEle}",
    						//graphicName: "circle",
                            pointRadius: 8,
                            //see context object below
    						// commenter la ligne suivante pour ne pas afficher le nom du waypoint sur la carte
                            label:"${getName}",
                            labelAlign: "rb",
                            labelXOffset: 5,
                            labelYOffset: -23,
                            labelBackgroundColor: "#484F6C",
                            labelBorderColor: "#FFFFFF",
                            labelBorderSize: "1px",
                            fontColor: "#FFFFFF",
                            fontWeight: "bold",
                            fontSize: "10px",
                            fontFamily: "Arial, Courier New, monospace"
                        },OpenLayers.Feature.Vector.style["default"]),{
                            /**
    						 * L'objet contexte contient une fonction appelée dans le symboliseur.
                             * Cette fonction qui prend comme argument feature ,sera appelée lors de l'utilisation du style "temporary"
                             */
                            context:{
                                getName: function(f) {
                                    if (f.attributes['typeName']=='wpt') {
                                        return f.attributes['name'];
                                    }
                                    return '';
                                }
    							getEle: function(f){
    								//return f.attributes['ele']; ne marche pas
    								return f.attributes.ele; // ne marche pas
    							}	
                            }
                        }),
                    "select": new OpenLayers.Style(
                        OpenLayers.Util.applyDefaults({
                            fillColor: "#FF9900",
                            fillOpacity: 0.75,
                            strokeColor: "#FFFF00",
                            strokeWidth: 4,
                            pointRadius: 12
                        },OpenLayers.Feature.Vector.style["select"]))
                }),
                /**
                 * Pour modifier le rendu et le comportement par défaut des fiches GPX, il faut surcharger les options:
                 * preFeatureInsert, onFeatureInsert, onSelect, onUnselect, et, éventuellement, hover.
                 */
                preFeatureInsert:
                    /**
                     * Set waypoints over tracks and routes.
                     * Parameters: f - {OpenLayers.Feature} the newly created feature.
                     */
                    function(f) {
                        if (f) {
                            // default Geoportal API : cursor pointer on hover ...
                            Geoportal.Popup.setPointerCursorForFeature(f);
                            var zidx= 0;
                            if (f.attributes['typeName']=='wpt') {
                                zidx= 1;
                            }
                            f.attributes['zIndex']= zidx;
                        }
                    },
                rendererOptions: {
                  /**
                   * Z-Index:
                   * Permet de jouer sur l'ordre d'affichage des couches
                   * see the example: http://openlayers.org/dev/examples/ordering.html
                   */
                    zIndexing: true
                },
                /**
                 * skipAttributes
                 * tableau des attributs à ne pas mettre dans la popup
                 */
                skipAttributes:['zIndex'],//do not render zIndex in popups!
    			skipAttributes:['ele']
                eventListeners:{
                    "loadend"              : function() {
                        if (this.maxExtent) {
                            //Zoom et recentrage sur l'emprise maxi
                            this.map.zoomToExtent(this.maxExtent);
                        }
                    },
                    //Changing the feature's style
                    "beforefeatureselected": changeRenderIntent,
                    "featureunselected"    : changeRenderIntent
                }
            },
            //options_popup : contient les informations permettant d'affiner le comportement des popups associées à la couche gpx
    		{
    		"hover" : false,
    		//"onSelect" : désactive la gestion popup, pour ajouter les mécanismes de gestion des popups ;
            }
        );
    }
    /**
     * Function: loadAPI
     * Load the configuration related with the API keys. Called on "onload" event. Call <initMap>() function to load the interface.
     */
    function loadAPI() {
        // on attend que les classes soient chargées
        if (checkApiLoading('loadAPI();',['OpenLayers','Geoportal','Geoportal.Viewer','Geoportal.Viewer.Default'])===false) {
            return;
        }
        // on charge la configuration de la clef API, puis on charge l'application
        Geoportal.GeoRMHandler.getConfig(['[(#CONFIG{cartign}|unserialize|table_valeur{cle})]'], null,null, {
            onContractsComplete: initMap
        });
    }
    // assignation de la fonction à appeler lors de la levée de l'évènement "onload"
    window.onload= loadAPI;
    -->
    </script>
    La section de code pour récupérer la valeur de la balise <ele>

    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
    /**
    * L'objet contexte contient une fonction appelée dans le symboliseur.
    * Cette fonction qui prend comme argument feature ,sera appelée lors de l'utilisation du style "temporary"
    */
    context:{
       getName: function(f) {
        if (f.attributes['typeName']=='wpt') {
         return f.attributes['name'];
        }
        return '';
       }
       getEle: function(f){
    	//return f.attributes['ele']; ne marche pas
    	return f.attributes.ele; //ne marche pas
       }	
    }
    La section section de code pour affecter la valeur de la balise <ele> à l'attribut graphicName

    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
    OpenLayers.Util.applyDefaults({
              fillColor: "#03C51B",
              fillOpacity: 1,
              strokeColor: "#03C51B",
              strokeWidth: 2,
              graphicZIndex: "${zIndex}",
              // forme du marqueur, voir http://api.ign.fr/tech-docs-js/examples/geoportalMap_graphicName.html
              graphicName: "${getEle}",
    		  //graphicName: "circle",
              pointRadius: 8,
              //see context object below
    		  // commenter la ligne suivante pour ne pas afficher le nom du waypoint sur la carte
              label:"${getName}",
              labelAlign: "rb",
              labelXOffset: 5,
              labelYOffset: -23,
              labelBackgroundColor: "#484F6C",
              labelBorderColor: "#FFFFFF",
              labelBorderSize: "1px",
              fontColor: "#FFFFFF",
              fontWeight: "bold",
              fontSize: "10px",
              fontFamily: "Arial, Courier New, monospace"
    Merci d'avance pour votre aide, je suis débutant avec l'API du géoportail et pas expériementé en javascript.
    Cordialement

  11. #11
    Membre confirmé Avatar de acarme
    Femme Profil pro
    Ingénieur d'études en Géomatique
    Inscrit en
    Avril 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études en Géomatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 237
    Points : 522
    Points
    522
    Par défaut
    Bonjour,

    serait-il possible d'avoir accès à une page test pour pouvoir vous aider plus facilement ?

    Sinon, une piste pour vous aider :

    dans la fonction où vous tentez de récupérer la valeur de la balise "ele",
    ajoutez un : console.log(f);
    ensuite dans la console de firebug vous pourrez voir la structure de votre objet afin de récupérer la valeur dont vous avez besoin.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bonsoir,
    merci pour ces premières indications.
    la page de test : http://ing.musee-resistance-chateaub...p.php?article1

    j'ai ajouter consol.log(f) dans la fonction, est-ce correct ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    getEle: function(f){
             console.log(f);
    	return f.attributes['ele']; // ne marche pas
    //	return f.attributes.ele; //ne marche pas
       }
    Dans firebug je ne vois pas d'éléments concernant cette fonction, j'ai certainement fais une erreur ?
    cordialement

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2 130
    Points : 1 765
    Points
    1 765
    Par défaut
    Bonjour,

    J'ai une erreur de syntaxe dans Firebug liée à une absence de virgule :
    /**
    * L'objet contexte contient une fonction appelée dans le symboliseur.
    * Cette fonction qui prend comme argument feature ,sera appelée lors de l'utilisation du style "temporary"
    */
    context:{
    getName: function(f) {
    if (f.attributes['typeName']=='wpt') {
    return f.attributes['name'];
    }
    return '';
    },
    getEle: function(f) {

    En Spip, il y a l'excellent plugin http://contrib.spip.net/Plugin-SPIP-Geoportail de Jean-Marc Viglino.

  14. #14
    Membre confirmé Avatar de acarme
    Femme Profil pro
    Ingénieur d'études en Géomatique
    Inscrit en
    Avril 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études en Géomatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 237
    Points : 522
    Points
    522
    Par défaut
    Bonjour,

    en fait le problème vient de la balise.. dans la balise <ele> est attendu un nombre, et pas du texte, le texte n'est donc pas compris c'est pourquoi la fonction ne fonctionne pas.

    Une solution possible est de mettre la valeur du graphicName dans une balise <sym> qui elle attend bien du texte.
    on aurait donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    getSym: function(f) {
                                    return f.attributes.sym;
                                }

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    merci pour la virgule manquante, c'est corrigé.
    le comportement du script c'est amélioré, la fenêtre s'affiche.
    pour la carte c'est chaotique, faut cliquer dans la fenêtre.

    Qu'en à l'emploi de firebug, je ne localise rien de pertinent.
    http://ing.musee-resistance-chateaub...p.php?article1

    Merci
    Cordialement

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Rebonjour,
    @acarme

    j'ai fais le modification avec la balise <sym>,
    modifier la fonction en conséquence et fais un essai avec les syntaxes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    getSym: function(f) {
                                    return f.attributes.sym;
                                }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    getSym: function(f) {
                                    return f.attributes['sym'];
                                }
    puis en m'inspirant de la fonction getName, mais sans résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    getSym: function(f) {
                                console.log(f);
                                //return f.attributes['sym']; // ne marche pas
                                //return f.attributes.sym; // ne marche pas
                                    if (f.attributes['typeName']=='wpt') {
                                        return f.attributes['sym'];
                                    }
                                   return '';
    http://ing.musee-resistance-chateaub...p.php?article1

    merci d'avance
    cordialement

  17. #17
    Membre confirmé Avatar de acarme
    Femme Profil pro
    Ingénieur d'études en Géomatique
    Inscrit en
    Avril 2013
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études en Géomatique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 237
    Points : 522
    Points
    522
    Par défaut
    Bonjour,

    il reste juste à modifier le gpx de cette façon :
    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
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <gpx xmlns="http://www.topografix.com/GPX/1/1" creator="matt" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
    	<wpt lat="47.723163" lon="-1.349655">
    		<sym>museum</sym>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Musée de la résistance de Châteaubriant</desc>
    		<name>Musée</name>
    	</wpt>
    	<wpt lat="47.724230" lon="-1.347641">
    		<sym>_view_</sym>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Carrière des fusillés</desc>
    		<name>La Sablière et le musée</name>
    	</wpt>
    	<wpt lat="47.795258" lon="-1.413912">
    		<sym>airport</sym>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Zone de parachutage</desc>
    		<name>Fercé</name>
    	</wpt>
    	<wpt lat="47.501777" lon="-1.578292">
    		<sym>circle</sym>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Mémorial et camp des maquisards</desc>
    		<name>Le maquis de Saffré</name>
    	</wpt>
    </gpx>
    Avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    getSym: function(f) {
                                    return f.attributes.sym;
                                }
    cela fonctionne bien chez moi

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut [Résolu] Afficher symboles de waypoints GPX
    Merci acarme, randoz et mga_geo

    j'avais fait une erreur de frappe dans le dernier test <sym><airport/sym> au lieu de <sym> aiport</sym> signalé par une popup bien utile.
    Donc au final :
    Pour le fichier GPX :
    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
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <gpx xmlns="http://www.topografix.com/GPX/1/1" creator="matt" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
    	<wpt lat="47.723163" lon="-1.349655">
    		<ele></ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Musée de la résistance de Châteaubriant</desc>
    		<name>Musée</name>
                    <sym>museum</sym>
    	</wpt>
    	<wpt lat="47.724230" lon="-1.347641">
    		<ele></ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Carrière des fusillés</desc>
    		<name>La Sablière et le musée</name>
                    <sym>_view_</sym>
    	</wpt>
    	<wpt lat="47.795258" lon="-1.413912">
                    <ele></ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Zone de parachutage</desc>
    		<name>Fercé</name>
                    <sym>airport</sym>
    	</wpt>
    	<wpt lat="47.501777" lon="-1.578292">
    		<ele></ele>
    		<time>2013-09-20T08-26-05Z</time>
    		<desc>Mémorial et camp des maquisards</desc>
    		<name>Le maquis de Saffré</name>
                    <sym>circle</sym>
    	</wpt>
    </gpx>
    Une autre balise devrait être disponible <cmt></cmt> (commentaire),
    elle reçoit du texte, vu sur http://clic0.free.fr/api_ign/clic0_gpx.php quand il était encore opérationnel en générant des fichier gpx.

    Le script complet, ça peut servir à d'autres :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    <div id="viewerDiv" style="min-height:500px;"></div>
    <script type="text/javascript">
    <!-- // script geoportalMap_gpx
    //Copyright (c) 2008-2012 Institut National de l'information Geographique et forestiere France, released under the BSD license.
    /**
     * Property: viewer
     * {<Geoportal.Viewer>} the viewer global instance.
     * La variable viewer est déclarée lors de l'appel au script de chargement de l'api en paramètre de instance, pas besoin de la redéclarer.
     */
    viewer= null;
    //Changement du style de rendu de l'objet selon s'il est selectionné ou pas
    function changeRenderIntent (o) {
        if (o && o.feature) {
            o.feature.renderIntent= o.feature.renderIntent=="default"?
                "select"
            :   "default";
        }
    }
    /**
     * Function: initMap
     * Load the application. Called when all information have been loaded by
     * <loadAPI>().
     */
    function initMap() {
        //L'api est chargée à cette étape
        // ajout tranductions
       /* translate(); */
        //options for creating viewer:
        var options= {
    
            // valeur par défaut
            mode:'normal',
            // default value
            // valeur par défaut
            //territory:'FXX',
            // valeur par défaut
            displayProjection:'IGNF:RGF93G',
    		// taille des logos coin bas droit
    		controlsOptions:{
                    logoSize:30
                }
            // utile uniquement pour charger des resources externes
            //proxy:'/geoportail/api/xmlproxy'+'?url='
        };
    
        // création du visualiseur du type <Geoportal.Viewer>, HTML div id, options
        viewer= new Geoportal.Viewer.Default(
    		"viewerDiv", 
    		OpenLayers.Util.extend(
    			options,
    			// variable contenant la configuration des clefs API remplie par
    			// <Geoportal.GeoRMHandler.getConfig>
    			window.gGEOPORTALRIGHTSMANAGEMENT===undefined? {'apiKey':'......... la clé d'utilisation géoportail ......'} : gGEOPORTALRIGHTSMANAGEMENT)
        );
    //____________Onglet "couches" affiché (true=oui  false=non)
                viewer.setLayersPanelVisibility(true);
    //____________Onglet "couches" développé (true=oui  false=non)
                viewer.openLayersPanel(false);
    //____________Onglet "outils" affiché (true=oui  false=non)        
                viewer.setToolsPanelVisibility(true);
    //____________Onglet "outils" développé (true=oui  false=non)        
                viewer.openToolsPanel(true);
    	// désactive le mouse wheel :
        var c= viewer.getMap().getControlsByClass('OpenLayers.Control.Navigation');
        if (c.length>0) {
            c= c[0];
            c.deactivate();
            c.zoomWheelEnabled= false;
            c.activate();
        }
    	// masque le toolbox navigation control (pan and zoom box) :
        /* c= viewer.getMap().getControlsByClass('Geoportal.Control.NavToolbar');
        if (c.length>0) {
            c= c[0];
            c.div.style.display= 'none';
        } */
    	// change le label du toolbox :
        /* c= viewer.getMap().getControlsByClass('Geoportal.Control.ToolBox');
        if (c.length>0) {
            c= c[0];
            Geoportal.Lang['de']['gpControlToolBox.label']= 'Ebenen';
            Geoportal.Lang['en']['gpControlToolBox.label']= 'Levels';
            Geoportal.Lang['es']['gpControlToolBox.label']= 'Los niveles de';
            Geoportal.Lang['fr']['gpControlToolBox.label']= 'Niveaux';
            Geoportal.Lang['it']['gpControlToolBox.label']= 'Livelli';
            c.changeLang();
        } 
        c= null;
    	*/
        if (!viewer) {
            // problem ...
            OpenLayers.Console.error(OpenLayers.i18n('new.instance.failed'));
            return;
        }
        //Chargement des couches de données
        viewer.addGeoportalLayers([
            'ORTHOIMAGERY.ORTHOPHOTOS',
            'GEOGRAPHICALGRIDSYSTEMS.MAPS',
    		'CADASTRALPARCELS.PARCELS',
    		'HYDROGRAPHY.HYDROGRAPHY',
    		'ADMINISTRATIVEUNITS.BOUNDARIES',
    		'BUILDINGS.BUILDINGS',
    		'ELEVATION.SLOPES',
    		'GEOGRAPHICALNAMES.NAMES',
    		'ELEVATION.LEVEL0',
    		'TRANSPORTNETWORKS.RAILWAYS',
    		'TRANSPORTNETWORKS.ROADS',
    		'TRANSPORTNETWORKS.RUNWAYS',
    		'UTILITYANDGOVERNMENTALSERVICES.ALL'],
                {
    				'ORTHOIMAGERY.ORTHOPHOTOS':{
    					visibility:true,
    					opacity: 1,
    					name:'Photo aérienne'
    				},
    				'GEOGRAPHICALGRIDSYSTEMS.MAPS':{
    					visibility:true,
    					opacity: 0.6
    				},
    				'CADASTRALPARCELS.PARCELS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'HYDROGRAPHY.HYDROGRAPHY':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'ADMINISTRATIVEUNITS.BOUNDARIES':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'BUILDINGS.BUILDINGS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'ELEVATION.SLOPES':{
    					visibility:false,
    					opacity: 0.6,
    					//name:'Altitudes'
    				},
    				'GEOGRAPHICALNAMES.NAMES':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'ELEVATION.LEVEL0':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'TRANSPORTNETWORKS.RAILWAYS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'TRANSPORTNETWORKS.ROADS':{
    					visibility:false,
    					opacity: 1
    				},
    				'TRANSPORTNETWORKS.RUNWAYS':{
    					visibility:false,
    					opacity: 0.6,
    				},
    				'UTILITYANDGOVERNMENTALSERVICES.ALL':{
    					visibility:false,
    					opacity: 0.6,
    				},
                    global:{
                        transitionEffect: 'resize'
                    }
                });
    
        //La couche GPX allant de 10 à 13, on se met au bon niveau de zoom :
        viewer.getMap().setCenter(viewer.viewerOptions.defaultCenter,10);
        // cache la patience
        viewer.div.style[OpenLayers.String.camelize('background-image')]= 'none';
        //Ajout d'une couche GPX : une ballade en vélo ...
        var gpx= viewer.getMap().addLayer("GPX",
    
            /**
             * layer_name parameter contient le texte qui sera affiché dans le gestionnaire de couches.
             * Les traductions peuvent être mises directement içi !
             */
            { 
                'track.gpx.name':
                {
                    'de':"Reise",
                    'en':"Trip",
                    'es':"Viaje",
                    'fr':"Points intéressants",
                    'it':"Viaggio"
                } 
            },
            /**
             * url_to_gpx parameter Chemin d'accès aux données GPX
             */
    		 
    		 
            "......./gpx/amrc_parcour_memoire.gpx",
    		 
    		 
            {
                // gpx_options contient les informations permettant d'affiner le comportement de la couche GPX
                visibility:true,
                opacity:1.0,
                minZoomLevel:0,
                maxZoomLevel:0,
                originators:[{
                    pictureUrl:'',
                    url:''
                }],
                styleMap:new OpenLayers.StyleMap({
                    "default": new OpenLayers.Style(
                        OpenLayers.Util.applyDefaults({
                            fillColor: "#03C51B",
                            fillOpacity: 1,
                            strokeColor: "#03C51B",
                            strokeWidth: 2,
                            graphicZIndex: "${zIndex}",
                            // forme du marqueur, voir http://api.ign.fr/tech-docs-js/examples/geoportalMap_graphicName.html
                            graphicName: "${getSym}",
                            //graphicName: "circle",
                            pointRadius: 8,
                            //see context object below
                            // commenter la ligne suivante pour ne pas afficher le nom du waypoint sur la carte
                            label:"${getName}",
                            labelAlign: "rb",
                            labelXOffset: 5,
                            labelYOffset: -23,
                            labelBackgroundColor: "#484F6C",
                            labelBorderColor: "#FFFFFF",
                            labelBorderSize: "1px",
                            fontColor: "#FFFFFF",
                            fontWeight: "bold",
                            fontSize: "10px",
                            fontFamily: "Arial, Courier New, monospace"
                        },OpenLayers.Feature.Vector.style["default"]),{
                            /**
                             * L'objet contexte contient une fonction appelée dans le symboliseur.
                             * Cette fonction qui prend comme argument feature ,sera appelée lors de l'utilisation du style "temporary"
                             */
                            context:{
                                getName: function(f) {
                                    if (f.attributes['typeName']=='wpt') {
                                        return f.attributes['name'];
                                    }
                                    return '';
                                },
                                getSym: function(f) { 
                                             return f.attributes.sym;
                                }	
                            }
                        }),
                    "select": new OpenLayers.Style(
                        OpenLayers.Util.applyDefaults({
                            fillColor: "#FF9900",
                            fillOpacity: 0.75,
                            strokeColor: "#FFFF00",
                            strokeWidth: 4,
                            pointRadius: 12
                        },OpenLayers.Feature.Vector.style["select"]))
                }),
                /**
                 * Pour modifier le rendu et le comportement par défaut des fiches GPX, il faut surcharger les options:
                 * preFeatureInsert, onFeatureInsert, onSelect, onUnselect, et, éventuellement, hover.
                 */
                preFeatureInsert:
                    /**
                     * Set waypoints over tracks and routes.
                     * Parameters: f - {OpenLayers.Feature} the newly created feature.
                     */
                    function(f) {
                        if (f) {
                            // default Geoportal API : cursor pointer on hover ...
                            Geoportal.Popup.setPointerCursorForFeature(f);
                            var zidx= 0;
                            if (f.attributes['typeName']=='wpt') {
                                zidx= 1;
                            }
                            f.attributes['zIndex']= zidx;
                        }
                    },
                rendererOptions: {
                  /**
                   * Z-Index:
                   * Permet de jouer sur l'ordre d'affichage des couches
                   * see the example: http://openlayers.org/dev/examples/ordering.html
                   */
                    zIndexing: true
                },
                /**
                 * skipAttributes
                 * tableau des attributs à ne pas mettre dans la popup
                 */
                skipAttributes:['zIndex'],//do not render zIndex in popups!
    //          skipAttributes:['ele']
                eventListeners:{
                    "loadend"              : function() {
                        if (this.maxExtent) {
                            //Zoom et recentrage sur l'emprise maxi
                            this.map.zoomToExtent(this.maxExtent);
                        }
                    },
                    //Changing the feature's style
                    "beforefeatureselected": changeRenderIntent,
                    "featureunselected"    : changeRenderIntent
                }
            },
            //options_popup : contient les informations permettant d'affiner le comportement des popups associées à la couche gpx
    		{
    		"hover" : false,
    		//"onSelect" : désactive la gestion popup, pour ajouter les mécanismes de gestion des popups ;
            }
        );
    }
    /**
     * Function: loadAPI
     * Load the configuration related with the API keys. Called on "onload" event. Call <initMap>() function to load the interface.
     */
    function loadAPI() {
        // on attend que les classes soient chargées
        if (checkApiLoading('loadAPI();',['OpenLayers','Geoportal','Geoportal.Viewer','Geoportal.Viewer.Default'])===false) {
            return;
        }
        // on charge la configuration de la clef API, puis on charge l'application
        Geoportal.GeoRMHandler.getConfig(['.......... la clé d'utilisation géoportail .............'], null,null, {
            onContractsComplete: initMap
        });
    }
    // assignation de la fonction à appeler lors de la levée de l'évènement "onload"
    window.onload= loadAPI;
    -->
    </script>
    <script type="text/javascript" charset="utf-8" src="http://api.ign.fr/geoportail/api/js/2.0.3/GeoportalExtended.js"><!-- --></script>
    Un grand merci à tous.
    Cordialement

  19. #19
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut [Résolu] certes, ...
    mais toujours pas

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Bonjour gcebelieu,
    Règle IV-L. [Résolu] :
    Quand vous avez obtenu la réponse à votre question, merci d'ajouter l'état [Résolu] à votre titre en cliquant sur le bouton en bas à gauche de la page.
    Mais où est ce "button" dans l'interface de réponse ?
    cordialement

Discussions similaires

  1. couleur de fond / noms de waypoint GPX
    Par gilbert006 dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 11/04/2012, 10h34
  2. Afficher Waypoint GPX
    Par christian.bleau dans le forum IGN API Géoportail
    Réponses: 11
    Dernier message: 17/02/2012, 17h54
  3. Icons pour waypoints gpx
    Par jamesl dans le forum IGN API Géoportail
    Réponses: 4
    Dernier message: 22/02/2011, 12h55
  4. Afficher le 'name' des 'waypoints' d'un GPX
    Par randoz dans le forum IGN API Géoportail
    Réponses: 7
    Dernier message: 20/11/2010, 15h11
  5. Afficher symbole euro sur Web
    Par mxh77 dans le forum 4D
    Réponses: 2
    Dernier message: 25/05/2007, 18h25

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