SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Images, Galeries > Cartographie > Carte sites SPIP

La carte des sites sous SPIP

mardi 25 décembre 2007, par Balluche. Dernier ajout lundi 19 mai 2008


Une carte des sites réalisés avec SPIP

Voir en ligne : Balluche


Nota SPIP-Contrib : l’utilisation d’un « iframe » comme dans cette contrib pour l’insertion de cette carte fait débat. Il est aussi difficile des se faire une idée sur la fiabilité de cette représentation faute de précision sur le code utilisé. Quoiqu’il en soit à chacun d’apprécier la chose à son idée.

Principe de la carte

La carte des sites sous SPIP est une carte du monde des sites fonctionnant sous SPIP et mise à jour chaque jour automatiquement (le principe de fonctionnement est expliqué plus bas).

La carte contient déjà plusieurs centaines de sites. Les milliers d’autres seront intégrés dans les prochains mois.

On clique sur une icône SPIP pour voir apparaître le détail des informations sur un site ainsi qu’un aperçu du site.

Fonctionnement et inscription

Tous les jours le programme récupère les sites ajoutés sur spip.net > Des sites sous SPIP. Pour qu’un site (le vôtre par exemple) apparaisse sur la carte il doit donc y être inscrit.

Pour chaque site, il essaye de le géolocaliser en exécutant d’abord une requête whois sur différents sites [1] et s’il ne trouve pas, il tente de détecter une adresse postale sur votre site. Le programme va d’abord chercher dans tout ce qui ressemble à une page contact (rassurez vous cela vous prend 0% de bande passante). Une fois que le programme a récupéré l’adresse alors il est en mesure de géolocaliser le site. Pour le reste j’utilise les API googlemaps et voilà !

Vous pouvez toujours aider le programme en insérant votre adresse de domicile (au moins code postal et ville) dans votre propre site [2]. Sinon utilisez le forum de cet article pour demander une inclusion manuelle en précisant votre site et votre adresse. Le programme de géolocalisation est amélioré de jour en jour.

Cas des sites en sous-domaine

Si votre site est hébergé en sous-domaine, sans nom de domaine propre donc (genre sur Free par exemple), l’insertion de votre adresse dans votre propre site ou l’inscription manuelle via le forum devient indispensable. Afin de rendre le processus automatible, vous pouvez utiliser le format suivant dans votre commentaire :

site: www.monsite.fr
adresse: 45 rue de SPIP 75002 Paris FR

Le code

Intégrer la carte

Cette carte peut être intégrée dans d’autres sites en rapport avec SPIP

Insérez le code suivant dans votre squelette ou autre page html entre les balises <body> et </body> :

<iframe src="http://balluche.free.fr/spipmap.php" width="500" height="400" frameborder="0" scrolling="no"/></iframe>

Génération de la carte

Cette carte est générée à partir de l’outil php Phoogle (voir plus bas un exemple d’utilisation). Je récupère les sites grâce à la fonction php file_get_contents et j’utilise une expression régulière (plus tard cela se fera par syndication RSS car c’est plus sûr) pour extraire les informations. Pour récupérer l’adresse, j’utilise une requête google spéciale.

Un 1er programme est lancé une fois par jour pour mettre à jour la base de donnée interne des sites spip avec les nouveaux sites. Pour les sites plus anciens présents dans la base, un autre programme lancé toutes les heures récupère les adresses postales au fur et à mesure. Je veille à ne pas surcharger les serveurs de whois pour ne pas me faire jeter. Une 20aine de sites sont traités chaque heure. Un petit calcul rapide indique que la totalité des sites seront géolocalisés dans quelques mois.

Tout les sites ne seront pas localisés. L’adresse postale de l’éditeur du site peut ne pas être présente dans le whois ou a pu être masquée ou rendu interdite d’accès. Pour les nombreux sites qui n’ont pas de nom de domaine propre, ils peuvent ne pas comporter d’adresses postale ou alors cette dernière est difficile ou impossible à trouver par Google.

Ensuite il ne reste plus qu’à utiliser Phoogle [3] avec les données de la base. Ils faut savoir que les API de Google ne sont pas 100% fiables. Tout d’abord, elles ne supportent pas des appels trop nombreux ou trop proches. C’est pourquoi que dès qu’une latitude et une longitude ont été calculés, je les stocke dans la base pour ne pas avoir à faire appel à l’API une nouvelle fois. Parfois l’API se trompe, elle retourne des coordonnées incorrectes qui positionnent le site ailleurs. Dans ce cas, seule une intervention humaine peut permettre de réinitialiser les coordonnées.

Phoogle est un framework php qui masque les appels aux nombreuses fonctions javascript de l’API Google Maps. Exemple d’utilisation de phoogle :

<?php
        $ph = new PhoogleMap();
        $ph->setAPIkey("Votre clé");
//je change les icônes par défaut; modifs apportées à Phoogle (je demanderai à l'éditeur de proposer cette modification s'il le souhaite)
        $ph->Icon = "http://balluche.free.fr/spip-small.png";
        $ph->iconShadow = "http://balluche.free.fr/spip-small-shadow.png";
        $ph->iconWidth = 20;
        $ph->iconHeight = 20;
        $ph->setHeight(400);
        $ph->setWidth(500);
//zoom initial
        $ph->zoomLevel = 15;
//on positionne le canevas sur la France
        $ph->centerMap(47.15984, 2.988281);
//on parcoure la liste des sites
        $res = mysql_query("SELECT * FROM sites_spip") or die(mysql_error());
        while ($row = mysql_fetch_assoc($res)) {
                extract($row);
//préparation de l'affichage de la bulle
                $info = <<<EOT
<table><td>
<a href='$site' target='_ blank'><img width='120' width='90' src='http://open.thumbshots.org/image.pxf?url=$site' border='0'></a>
</td><td>
<small>
<a href='$site' target='_blank'>$site</a>
<b>Auteur</b>: $auteur
<b>Origine</b>: $info
<b>Date de publication</b>: $date
</small>
</table>
EOT;
                $coordinates = $ph->addAddress($q, $info);
        }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="content-type" content="text/html; charset=iso8859-1"/>
   <title>La Carte des sites sous SPIP</title>
   <?php
          $ph->printGoogleJS();
    ?>
 </head>
 <body>
   <?php
          //on sort tout le javascript qui gère la carte
          $ph->showMap(); ?>
 </body>
</html>

Comme la carte est assez lourde, j’utilise un système de cache très performant : quickcache.

Il y a beaucoup de choses à dire si on rentre dans le détail de l’implémentation [4]

Les limites, il n’y en a pas beaucoup. J’améliore le programme de jour en jour et la carte commence à être bien remplie. La question que je me pose est si elle va supporter les 5000 [5] sites SPIP ?

Notes

[1] Afnic, Gandi, ...

[2] n’importe où pourvu que ce soit accessible par un moteur de recherche

[3] Que j’ai modifié pour gérer les icônes.

[4] Nota SPIP Contrib : pourtant cela pourrait peut-être intéresser du monde, au moins avec quelques pistes pour le code ?

[5] Nota SPIP Contrib : rien que sur spip.net il y a déjà plus que 5000 sites inscrits


Répondre à cet article

  • La carte des sites sous SPIP

    5 juillet 2008 10:22, par klyne

    A référencer sur la carte :

    - site de la communauté des communes du Miey de Béarn : 4 rue principale à Poey de Lescar url : http://www.mieydebearn.fr

    - portail des associations du Miey de Béarn : 4 rue principale à Poey de Lescar url : http://www.associations.mieydebearn.fr

    - chamadelle production : site de vidéastes amateurs béarnais : Gan 64 - http://chamadelle.ovh.org

    Répondre à ce message

    Retour au début des forums

  • La carte des sites sous SPIP

    2 mai 2008 00:36, par Guignol

    Bonjour, Voici l’adresse de mon site à positionner sur la carte

    http://les-florianes.net/

    L’adresse : 25 rue Lt colonel Girard à Lyon 69007

    Bravo pour ce travail. A bientôt peut être dans un apéro SPIP :-)

    Répondre à ce message

    Retour au début des forums

  • La carte des sites sous SPIP, bonne idée :)

    14 mai 2008 09:53, par www.sid-networks.com

    Bonjour et merci pour ton travail, c’est une excellente idée.

    Pour ma par je pense que ton application mériterait d’être développée.

    1 / L’installer sur une serveur solide, là free ça rame dur.

    2 / permettre dans l’appel de ta carte une géolocalisation directe d’un site, ce qui permettra d’appeller l’application pour géolocaliser directement un site avec une bonne visibilité de celui-ci. Peut être est ce déjà le cas en passant différents paramètres dans l’iframe ?

    3 / tu utilises la géolocalisation à partir des données de SPIP.Net et googlemap. Existe il un moyen d’aller piocher directement dans google en récupérant par exemple ce type de données : les informations te permettant d’alimenter tes données ?

    En tout cas suite à la lecture de la gazette et de cette contribution, je me suis permis de dupliquer leur article et d’ insérer ta carte sur mon blog spip et je vais me remettre à incrire mes sites spip sur spip.net en espérant pouvoir installer ta carte avec la géolocalisation plus précise sur mon site spip pro

    Ton application devrait encourager les spipeurs à le faire plus souvent je pense ;). Longue vie à elle, en espérant que tu va la faire évoluer, et merci.

    Répondre à ce message

    • La carte des sites sous SPIP, bonne idée :) 14 mai 2008 16:02, par balluche

      Bonjour,

      Merci pour le commentaire. Je réponds aux questions que tu te poses :

      1/ Le serveur est hébergé chez ovh. Je ne sais pas si c’est mieux par rapport à free. Enfin je suppose étant donné qu’ovh est payant.

      La page montrant la carte est assez optimisée puisque qu’elle utilise un système de cache avec compression du code HTML. Je ne sais pas si l’affichage de la carte serait plus rapide sur un autre serveur car quel que soit l’hébergement, je dois faire appel au serveur de googlemaps.

      Je constate que la carte est très chargée maintenant puisque qu’elle contient 2000 sites environs [1]. J’envisage d’optimiser le nombres de points sur la carte en le rendant dynamique à l’image de ce qui est fait sur le site de la communauté française d’Ubuntu.

      2/ Donner un moyen de se positionner immédiatement sur la carte ? Pourquoi pas. Un simple formulaire devrait faire l’affaire. Il faudra auparavant inscrire son site sur spip.net.

      Mais je ne sais pas si j’ai bien compris la question. Tu souhaiterais que je gère l’affichage d’un seul site sur la carte ?

      3/ C’est ce que j’ai essayé de faire mais google me l’interdit. En effet, j’ai travaillé sur un programme capable de récupérer les sites qui ont "oublié" de s’inscrire sur spip.net en effectuant une simple requête de ce genre. Mais Google m’accuse d’être un pirate ;-). Cà marche avec Yahoo mais je ne peux aller au delà de 1000 urls.

      Répondre à ce message

      • La carte des sites sous SPIP, bonne idée :) 22 mai 2008 09:50, par www.sid-networks.com

        Merci pour ta réponse à laquelle je réponds tardivement.

        1 / Ovh est très bien, c’est sans doute le chargement des nombreux sites qui font ramer l’affichage de l’iframe. Un petit coup d’ajax peut-être pour préparer le loading de l’iframe ? Peut-être du côté de Highslide existe il une solution ou un équivalent ?

        2 / Je trouverais intéressant que l’affichage ne prenne non pas en compte un seul site, mais soit directement centré, comme sur ta deuxième photo en exemple en haut de page, avec les paramètres choisis par l’internaute. Ainsi tu favorises la diffusion de ton application à des fins particulières, personnalisées et favorise en même temps la connaissance de SPIP, outil bien sous-estimé. (en espérant être clair)

        Bon courage et bravo.

        Répondre à ce message

    Retour au début des forums

  • La carte des sites sous SPIP

    19 janvier 2008 12:31, par André

    Dommage qu’on ne puisse pas l’ouvrir dans une nouvelle fenêtre comme cela est possible avec Google Maps, on gagnerait en lisibilité. En tout cas super boulot !

    Répondre à ce message

    • La carte des sites sous SPIP 19 janvier 2008 15:37, par balluche

      C’est tout à fait possible. Il suffit d’ouvrir la page http://www.balluche.fr/spipmap.php en désactivant javascript. Si vous incluez cette page dans une frame ou iframe d’un site quelconque, la carte s’affiche entièrement (pas besoin de désactiver javascript) dans sa taille d’origine (500x400). Si vous avez besoin d’une taille plus grande voire paramétrable, et que plusieurs personnes sont intéressées alors il est possible de modifier le script.

      Répondre à ce message

      • La carte des sites sous SPIP 19 janvier 2008 17:02, par André

        C’est sûr, plus simple serait mieux...

        Répondre à ce message

        • La carte des sites sous SPIP 12 mars 2008 23:38, par f6hhc

          J’ai réalisé aussi mon site photo sous spip et j’ai bien inséré le code comme on me l’a indiquer dans mon sommaire.html. apres quelques jours je ne vois toujours pas mon reperage sur la carte ;Pouvez vous y faire quelquechose.. merci Mon adresse est : http://fe6hhcrene.free.fr/spip mon site s’appelle : ma passion photo ma localisation : 1 chaussée brunehaut 59530 Jolimetz Merci a tous et encore bravo pour votre travail. rené avec ses amitiés

          Répondre à ce message

          • La carte des sites sous SPIP 16 mars 2008 14:34, par balluche

            Bonjour,

            Même réponse que pour arno.59, ton adresse n’est pas encore indexée par google. Tant que cela n’est pas fait, le programme ne peut récupérer l’adresse et donc afficher ton site sur la carte. Je vais le faire à la mano pour accélérer les choses.

            Je signale si çà n’est pas encore compris qu’il n’est pas obligatoire d’intégrer la carte à votre site web pour apparaître sur la carte (manquerait plus çà :-) ). Vous intégrez la carte si vous le souhaitez et si vous aimez faire un peu de pub pour spip.

            Pour apparaître sur la carte il suffit :
            - d’inscrire son site sur le site de spip
            - d’avoir son adresse à jour dans le whois (si vous êtes propriétaire du site) ou sur votre site (si vous êtes hébergé gratuitement - code postal et ville au minimum)
            - d’attendre que l’adresse soit indexée par google (pour cela regardez le lien plus haut)
            - attendre encore 2 jours pour êre intégré à la carte

            Répondre à ce message

    Retour au début des forums

  • La carte des sites sous SPIP

    9 mars 2008 20:35, par arno.59

    Bonjour, Je m’inquiète de n’être tjrs pas sur la carte des sites spip ... Est-ce que la présencede la carte sur le site est important ? si c’est la cas vaut-il mieux la metre ds l’interface administative ou en dur dans n desfichiers html ?

    arno.59

    Répondre à ce message

    Retour au début des forums

  • La carte des sites sous SPIP

    29 décembre 2007 09:48, par SVTCOL

    Le site SVTCOL sous spip 192C http://svtcol.free.fr est localisé dans l’ouest de la France : 49310 Montilliers (près de Vihiers)

    Répondre à ce message

    • La carte des sites sous SPIP 9 mars 2008 14:30, par arno.59

      bonjour,

      est-il possible que vous procédiez à l’inclusion manuelle de mon site réalisé sous spip 1.9.d. afin qu’il soit visible sur la carte des sites SPIP

      Il est hébergé chez free. Je suis déjà inscrit sur SPIP zone mais ma géo localisation semble être difficile ... j’ai pourtant ajouté mon adresse dans ma page sommaire.html bien côtée dans google n tapant valarep.

      site : http://valarep.free.fr adresse : 5 rue des Moulineaux 59300 VALENCIENNES FR

      Merci beaucoup.

      Répondre à ce message

    Retour au début des forums

  • La carte des sites sous SPIP

    22 février 2008 18:23, par davduf

    Bonjour,

    J’essaie de joindre Balluche pour une interview express au sujet de cette carte pour la Gazette Spip n°2... Mais en vain pour l’instant... Si quelqu’un pouvait faire passer le massage ,-)

    D’ailleurs, si des questions vous passent par la tête, n’hésitez pas ,-)

    Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net