Plugin jQuery Vector Maps

Ce plugin permet d’avoir des rendus vectoriels (SVG) par l’intermédiaire de la librairie « jQuery Vector Maps » (JQVMAP). L’image SVG affichée est responsive.

Préambule

Le mode de fonctionnement de la librairie JQVMAP est à consulter sur le site dédié à cette librairie jQuery http://jqvmap.com.

Installation

Ce plugin s’installe comme tous les plugins par l’intermédiaire du gestionnaire de plugins de SPIP. Merci de vous référer à la page dédiée.

Création de cartes

Après son installation, vous pourrez trouver dans le menu « Édition » de l’espace privé une entrée « Cartes », qui redirigera à l’adresse http://example.tld/ecrire/?exec=maps.
Cette page listera toutes les cartes que vous aurez créées. Dans la colonne de gauche (quand vous êtes en « petit écran » et colonne de droite quand vous êtes en « grand écran »), vous y trouverez un formulaire vous permettant d’importer des cartes fournies par le plugin à l’installation.

Sur la page ?exec=maps, si vous avez les droits nécessaires, vous pourrez cliquer sur le bouton « Créer une carte ». Vous pourrez y renseigner les champs suivants (qui sont issus de la librairie JQVMAP, entre parenthèses vous trouverez l’équivalence) :

  • Titre,
  • Descriptif,
  • Hauteur (height) : valeur numérique sans unité de mesure (pas de px, em, etc.).
  • Largeur (width) : valeur numérique sans unité de mesure (pas de px, em, etc.).
  • Code unique : un nom qui peut contenir des lettres non-accentuées, des chiffres, des underscores et des tirets. Les espaces ne sont pas autorisés.
  • Couleur du fond (backgroundColor) : une valeur hexadécimale d’une couleur ou le nom d’une couleur valide. Si vous renseignez null, le fond sera transparent.
  • Couleur des bordures (borderColor),
  • Opacité des bordures (borderOpacity) : la valeur à renseigner doit être comprise entre 0 et 1.
  • Épaisseur de la bordure (borderWidth) : une valeur numérique sans unité ;
  • Couleur des régions (color) : une valeur hexadécimale d’une couleur ou le nom d’une couleur valide. Si vous renseignez null, la couleur sera transparente,
  • Zoom (enableZoom) : activer le zoom sur la carte.
  • Couleur de survol (hoverColor) : couleur de la région lorsque le pointeur de la souris est au-dessus.
  • Opacité au survol (hoverOpacity) : la valeur à renseigner doit être comprise entre 0 et 1.
  • Fonction normalisée (normalizeFunction) : cette fonction peut être utilisée pour améliorer les résultats de visualisation des données de nature non-linéaire. La librairie utilise 2 fonctions par défaut « linear » et « polynomial ».
  • Couleurs de l’échelle (scaleColors) : cette option définit les couleurs, avec laquelle les régions seront colorisées lorsque vous définissez les valeurs d’option. Elle peut contenir plusieurs valeurs hexadécimales ou des couleurs valides (cf. red, orange, etc.), séparées par une virgule.
  • Couleur des éléments sélectionnés (selectedColor) : Valeur hexadécimale. Par défaut #c9dfaf.
  • Zone présélectionnée de la carte (selectedRegion) : ceci est la région (cf. zone) que vous cherchez à avoir présélectionnée.
  • Info-bulle (showTooltip) : Afficher le nom de la zone au survol.
  • Nom de la variable de data visualisation (dataName), si vous désirez faire de la data visualisation, il vous faut donner un nom correspondant au type de données. Ce nom ne doit pas contenir de caractères accentués ou d’espace. Il ne doit pas commencer par un chiffre.

Il y a 4 champs obligatoires :

  • Le titre de la carte,
  • Hauteur,
  • Largeur,
  • Code unique.

Pour information, voici le code utilisé dans le modèle pour afficher la carte :

jQuery('#map_[(#CODE_MAP|sinon{[(#TITRE||translitteration|strtolower|trim|replace{#GET{regex},"_",u})]})]').vectorMap({
        map: 'map_[(#CODE_MAP|sinon{[(#TITRE||translitteration|strtolower|trim|replace{#GET{regex},"_",u})]})]',[
        backgroundColor : (#BACKGROUND_COLOR|jqvmap_format),][
        borderColor : (#BORDER_COLOR|jqvmap_format),][
        borderOpacity : (#BORDER_OPACITY),][
        borderWidth : (#BORDER_WIDTH),][
        color : (#COLOR|jqvmap_format),][
        enableZoom : (#ENABLE_ZOOM),][
        hoverColor : (#HOVER_COLOR|jqvmap_format),][
        hoverOpacity : (#HOVER_OPACITY),][
        normalizeFunction : (#NORMALIZE_FUNCTION|jqvmap_format),][
        scaleColors : \[(#SCALE_COLORS|jqvmap_format)\],][
        selectedColor : (#SELECTED_COLOR|jqvmap_format),][
        selectedRegion : (#SELECTED_REGION|jqvmap_format),][
        showTooltip : (#SHOW_TOOLTIP),]<B_click>
        onRegionClick: function(element, code, region)
            {
                <BOUCLE_click (VECTORS) {id_map} {url_site!=''}>
                [(#COMPTEUR_BOUCLE|=={1}|?{'if','elseif'})] (code == '[(#CODE_VECTOR|sinon{[(#ID_VECTOR)]})]')
                {
                    window.open('[(#URL_SITE)]','_blank');
                }</BOUCLE_click>
            },</B_click>[
        values: (#DATA_NAME),]
    });

Ceux-ci renseignés, il vous faudra créer les zones de la carte. Pour cela, cliquer sur « Créer un vecteur ».

Créer des zones/vecteurs

Voici la liste des champs d’un vecteur :

  • Carte, par défaut, la carte sélectionnée est la carte ayant pour identifiant celui passé en paramètre de la présente page de création.
  • Titre,
  • Descriptif,
  • Abréviation de la zone,
  • Couleur de la zone : pour personnaliser la couleur de fond de la zone sur la carte,
  • Data visualisation : une valeur numérique (de 0 à XX milliards, les nombres à virgules sont autorisés sous la forme « anglaise »),
  • Coordonnées, ce champ correspond au path de votre fichier SVG initial.
  • Lien hypertexte : si une URL valide d’un site est renseignée, lorsque l’internaute cliquera sur cette zone, le navigateur ouvrira une fenêtre (ou un onglet selon le réglage du navigateur de l’internaute) vers ce lien.

Il y a 2 champs obligatoires :

  • Le titre de la zone,
  • Les coordonnées du path,

Après avoir cliqué « Enregistrer », vous serez redirigé vers la page de consultation de la zone. Pour revenir à la carte et voir le résultat concret de ce que vous avez saisi, il faut cliquer sur le nom de la carte dans le fil d’Ariane.
Vous devriez voir maintenant apparaître la carte au-dessus de la liste des zones de la carte.

Modèle fourni

Le plugin fourni un modèle jqvmap que vous pourrez utiliser dans vos articles (ou tout autre type d’objets) de la façon suivante :

<jqvmap|code_map=france_regions>
<jqvmap|id_map=1>

Ou dans vos squelettes :

[(#MODELE{jqvmap}{code_map=france_regions})]
[(#MODELE{jqvmap}{id_map=1})]

Mise en ligne d’une carte

Après avoir renseigné toutes les informations, aussi bien pour une carte que pour ses zones, la carte ne sera mise en ligne qu’après avoir changé son statut. En effet, pour des raisons de confort et de non pollution du site public, une carte possède les mêmes statuts qu’un article :

  • en cours de rédaction ;
  • proposé à l’évaluation ;
  • publié en ligne ;
  • à la poubelle ;
  • refusé.

Exemple de rendu de carte SVG

Le plugin se destine principalement à un rendu javascript de SVG. En voici un exemple avec la carte de France.

Carte de France des régions en 2016
Rendu par défaut d’une carte par le plugin jQuery Vector Map.

Mais il est tout à fait possible avec un peu d’imagination et de patience de réaliser une illustration telle que celle-ci :

Tigre de RaphaelJS

Liste des cartes fournies par le plugin

En voici la liste (qui pourra s’étoffer au fil de l’eau) :

  • 2015-fr-alsace.xml : Carte de la région d’Alsace avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-aquit.xml : Carte de la région de l’Aquitaine avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-auver.xml : Carte de la région de l’Auvergne avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-basnorm.xml : Carte de la région de la Basse Normandie avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-bourgogne.xml : Carte de la région de la Bourgogne avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-char.xml : Carte de la région de Champagne-Ardenne avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-francomte.xml : Carte de la région de Franche-Comté avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-hautnorm.xml : Carte de la région de la Haute-Normandie avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-langrous.xml : Carte de la région du Languedoc-Roussillon avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-limousin.xml : Carte de la région du Limousin avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-lorraine.xml : Carte de la région de la Lorraine avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-midipy.xml : Carte de la région Midi-Pyrénées avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-npdc.xml : Carte de la région Nord-Pas-de-Calais avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-picar.xml : Carte de la région Picardie avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-poitou.xml : Carte de la région Poitou-Charentes avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2015-fr-rhoalp.xml : Carte de la région Rhône-Alpes avec ses départements. Région avant la réforme territoriale au 1er janvier 2016.
  • 2016-fr-alpc.xml : Carte de la région « Aquitaine-Limousin-Poitou-Charentes » avec ses départements. Région de la réforme territoriale au 1er janvier 2016.
  • 2016-fr-aura.xml : Carte de la région « Auvergne-Rhône-Alpes » avec ses départements. Région de la réforme territoriale au 1er janvier 2016.
  • 2016-fr-bfc.xml : Carte de la région « Bourgogne-Franche-Comté » avec ses départements. Région de la réforme territoriale au 1er janvier 2016.
  • 2016-fr-lrmp.xml : Carte de la région « Languedoc-Roussillon-Midi-Pyrénées » avec ses départements. Région de la réforme territoriale au 1er janvier 2016.
  • 2016-fr-nordpdcp.xml : Carte de la région « Nord-Pas-De-Calais-Picardie » avec ses départements. Région de la réforme territoriale au 1er janvier 2016.
  • 2016-fr-norm.xml : Carte de la région « Normandie » avec ses départements. Région de la réforme territoriale au 1er janvier 2016.
  • brazil_br.xml : Carte du Brésil, issue de la librairie JQVMAP.
  • dz_fr.xml : Carte de l’Argentine, issue de la librairie JQVMAP.
  • europe_en.xml : Carte de l’Europe, issue de la librairie JQVMAP.
  • fr-bret.xml : Carte de la région de Bretagne avec ses départements. Région inchangée après la réforme territoriale du 1er janvier 2016.
  • fr-centre.xml : Carte de la région « Centre-Val de Loire » avec ses départements. Région inchangée après la réforme territoriale du 1er janvier 2016.
  • fr-corse.xml : Carte de la région de la Corse avec ses départements. Région inchangée après la réforme territoriale du 1er janvier 2016.
  • fr-idf.xml : Carte de la région de l’Île de France avec ses départements. Région inchangée après la réforme territoriale du 1er janvier 2016.
  • fr-paca.xml : Carte de la région « Provence Alpes Côte d’Azur » avec ses départements. Région inchangée après la réforme territoriale du 1er janvier 2016.
  • fr-pdll.xml : Carte de la région « Pays de La Loire » avec ses départements. Région inchangée après la réforme territoriale du 1er janvier 2016.
  • france_continent.xml : Carte de la France continentale (sans les DOM), avant la réforme territoriale au 1er janvier 2016.
  • france_regions.xml : Carte de la France avec les DOM, avant la réforme territoriale au 1er janvier 2016.
  • france_regions_2016.xml : Carte de la France avec les DOM, à partir de la réforme territoriale au 1er janvier 2016.
  • germany_en.xml : Carte de l’Allemagne, issue de la librairie JQVMAP.
  • world_en.xml : Carte du Monde, issue de la librairie JQVMAP, avec de la data visualisation.

Discussion

3 discussions

  • Bonjour et merci pour ce plugin,
    J’essaie d’afficher dans un article une des cartes prise dans la bibliothèque, chargée dans ’Edition/Cartes’ et non modifiée : « France Continentale », Mais.. en vain.
    J’ai mis les codes suivants dans l’article :

    <jqvmap|code_map=France Continentale>
    <jqvmap|id_map=1>

    (j’ai essayé aussi avec : |code_map=france_continentale, au cas où..
    et avec |width=500% comme indiqué dans un précédent post : idem).
    > ’Edition/Cartes’ affiche normalement la carte,
    > article coté privé j’ai juste un début de cadre (voir capture),
    > article coté public, y a rien...
    L’inspecteur montre bien la présence du bloc javascript... mais je ne vois pas d’instruction particulière pouvant expliquer son désaffichage.. et effectivement l’erreur signalée : « Valeur scale(0) translate(Infinity, 0) inattendue lors de l’analyse de l’attribut transform. »

    => Spip 3.2.1(« neuf », pour tests)
    => pas de surcharge (no « squelettes »),
    => Plugins : API de vérification, Archive, Bouquinerie, Chosen (fork de koenpunt), Fabrique, Facteur, Formulaire de contact avancé, Liens spip_out ouvrants, Logo SVG, Menu de langues avec liens, PhotoSwipe, Rôles, Saisies pour formulaires, SPIP Bonux, YAML.
    => Le #INSERT_HEAD est bien là..

    heu.. que dire de plus..
    Merci de votre aide !
    Thom

    Répondre à ce message

  • 8

    Bonjour, je teste actuellement jquery vector maps en créant un article contenant seulement les lignes ...
    <jqvmap|code_ma=occitanie>
    <jqvmap|id_map=6>
    Après validation de l’article, cette carte apparait dans la partie privée et est réactive ; mais je n’ai pas d’affichage du contenu de l’article dans la partie publique.
    Je suis sur SPIP 3.1.1 et écran de sécurité 1.3.2
    Avez-vous une piste ? merci.

    • Bonjour,

      Est-ce que vous utilisez un squelette maison dans l’espace publique ? Si oui, avez-vous mis la balise #INSERT_HEAD ?
      cf. https://www.spip.net/fr_article4629.html#INSERT_HEAD

    • Merci pour votre réponse rapide.
      J’utilise le squelette d’origine de la distribution et la balise #INSERT_HEAD est activée dans le couteau suisse. Est-ce qu’un autre plugin peut perturber jQuery Vector Maps

    • Est-ce que tu as vérifié si une erreur javascript est affichée stp ?
      Je n’ai pas testé avec le Couteau Suisse. Donc, je ne sais pas pour le moment les impacts possibles.

    • Dans le couteau suisse :
      Sécurité/Gestion du JavaScript —> choix par défaut
      Balises,Filtres,Critères/Balise #INSERT_HEAD —> activé
      Je vais essayer de vérifier de mon côté.

    • Si tu utilises Firefox ou Chrome, depuis l’espace public, sur l’article où tu as inséré la carte, fait un clic-droit sur la page et fais « Inspecter l’élément » (ou examiner l’élément selon ton navigateur).
      Cherches la console et regardes si tu as une erreur javascript dans cette console.

      Si oui, peux-tu nous la communiquer s’il te plaît ?

    • Re... Effectivement dans la console firefox j’ai une erreur javascript ...
      « Valeur scale(0) translate(Infinity, 0) inattendue lors de l’analyse de l’attribut transform. jquery.vmap.js:1044:4 »
      Je sèche...

    • En bas de l’éditeur de cartes, j’ai bien l’affichage de la carte avec infobulles au pasage de la souris. Dans l’espace privé, l’affichage est tout petit comme une bande quand l’article est sélectionné. Voir pj

    • Bonjour, Je reviens ici avec des bonnes nouvelles.
      Le code ci-après fonctionne bien ... (dans mon cas utilisation du couteau suisse) ...

      <jqvmap|width=500%|code_map=fr-aquit>
      <jqvmap|id_map=2>

      La variable width=xxx% permet s’ajuster une carte dans un article côté public ...
      On peut noter au passage que l’ajout de la variable height= xxx% à la ligne <jqvmap|width=500%|code_map=fr-aquit>
      (comme ceci ... <jqvmap|width=200%|height=200%|code_map=fr-aquit> )
      entraine le non-affichage de la carte côté public !
      Bonnes présentations avec le plugin jQuery-Vector-Maps.

    Répondre à ce message

  • 1
    Hokuto_no_ken

    Excellent plugin.
    Il y a une erreur dans le fichier xml Map monde, la balise path est deux fois fermante.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom