DIAPORAMA AVEC FONDU ENCHAINE DANS UNE INFO-BULLE
PHOTOS EXTRAITES D'UN ALBUM PICASA - SANS CONTROLES
Présentation
Insérer une photo dans une info-bulle, c'est bien ! Mais insérer un diaporama, avec un effet "fondu-enchaîné", c'est encore mieux !
Pour cela, nous allons utiliser Google Maps API et AJAX Feed API Slide Show Control, ainsi que les photos contenues dans un album photo Picasa.
Dans un premier temps, identifiez-vous pour accéder à votre compte Picasa. Sélectionnez l'album que vous souhaitez insérer dans l'info-bulle de votre carte, puis copiez l'adresse du lien RSS comme indiqué sur la capture d'écran ci-dessous.
L'adresse doit ressembler à ceci :
http://picasaweb.google.com/data/feed/base/user/xxxxxxxxxxxxxx/albumid/01234567890123456789?alt=rss&kind=photo&hl=fr
Insérez la dans le code, comme ceci :
var fluxRSS = "http://picasaweb.google.com/data/feed/base/user/xxxxxxxxxxxxxx/albumid/01234567890123456789?alt=rss&kind=photo&hl=fr";
Insérez, entre les balises <head></head>, le script gfslideshow.js :
<script src="http://www.google.com/uds/solutions/slideshow/gfslideshow.js" type="text/javascript"></script>
Carte
Après quelques secondes d'attente, le fondu enchainé démarre.
Code
Code : Avec Google Ajax API Loader
- <?xml version="1.0" encoding="utf-8"?>
- <!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" xmlns:v="urn:schemas-microsoft-com:vml" xml:lang="fr">
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
- <title>Touraineverte.com : Images Photos défilantes Diaporama Fondu enchainé Picasa dans une info-bulle sans contrôles</title>
- <script type="text/javascript" src="http://www.google.com/jsapi?key=Insérez_Votre_Clef_API_ Ici"></script>
- <script type="text/javascript" src="http://www.google.com/uds/solutions/slideshow/gfslideshow.js"></script>
- <script type="text/javascript">
- /* Chargement du module "maps" dans sa version "2.x" */
- google.load("maps", "2.x",{"other_params":"sensor=false"});
- /* Chargement du module "feeds" dans sa version "1" */
- google.load("feeds", "1");
- /* Déclaration des variables globales */
- var maCarte;
- var miniIconeVert;
- /* Remplacez l'URL ci-dessous par l'URL vers le flux RSS de votre album photo PICASA
- var fluxRSS = "http://picasaweb.google.com/data/feed/base/user/xxxxxxxxxxxxxxxxxx/albumid/0123456789012345678?alt=rss&kind=photo&hl=fr";
- */
- var fluxRSS = "http://www.touraineverte.com/rss/picasa.rss";
- /* Fonction initialize() */
- function initialize() {
- /* Si le navigateur est compatible avec l'API de Google Maps ... */
- if (google.maps.BrowserIsCompatible()) {
- miniIconeVert = new google.maps.Icon();
- miniIconeVert.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
- miniIconeVert.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
- miniIconeVert.iconSize = new google.maps.Size(12, 20);
- miniIconeVert.shadowSize = new google.maps.Size(22, 20);
- miniIconeVert.iconAnchor = new google.maps.Point(6, 20);
- miniIconeVert.infoWindowAnchor = new google.maps.Point(5, 1);
- maCarte = new google.maps.Map2(document.getElementById("EmplacementDeMaCarte"));
- maCarte.setCenter(new google.maps.LatLng(45.416512,4.406483), 13);
- var point = new google.maps.LatLng(45.416512,4.406483);
- var marqueur = new google.maps.Marker(point,miniIconeVert);
- maCarte.addOverlay(marqueur);
- /* infos = Contenu de l'info-bulle */
- var infos = '<div id="EncadrementInfoBulle"><div id="slideshow" class="gss">Chargement flux RSS Picasa en cours...</div></div>';
- /* Ajout d'un observateur d'événement au marqueur nommé "marqueur" */
- /* L'événement détecté est le click sur le marqueur */
- google.maps.Event.addListener(marqueur, "click", function() {
- /* Ouverture de l'info-bulle liée au marqueur nommé "marqueur" */
- /* Le contenu de l'info-bulle = infos */
- marqueur.openInfoWindowHtml(infos);
- /* Après un délai d'attente de de 3 secondes (3000 ms) */
- /* on appelle la fonction fonduEnchaine() */
- setTimeout("fonduEnchaine();",3000);
- });
- }else{
- /* ... affichage du message "Désolé, mais votre navigateur n'est pas compatible avec Google Maps". */
- alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps');
- }
- }
- /* Fonction fonduEnchaine() */
- function fonduEnchaine(){
- /* Adresse du flux rss provenant de l'album Picasa */
- /* fluxRSS : http://picasaweb.google.com/data/feed/base/user/xxxxxxxxxxxxxxxxxx/albumid/0123456789012345678?alt=rss&kind=photo&hl=fr; */
- /* options : displayTime: 2000 Durée, en milliseconde, d'affichage d'une photo */
- /* transistionTime: 600 Durée, en milliseconde, de transition entre deux photos */
- new GFslideShow(fluxRSS, 'slideshow', {displayTime: 2000,transistionTime: 800})
- }
- /* Permet l'appel de la fonction initialize() une fois que la page est chargée */
- google.setOnLoadCallback(initialize);
- </script>
- <style type='text/css'>
- <!--
- #EncadrementInfoBulle {
- background-color:#ccc;
- border:1px solid #ccc;
- height:216px;
- width:288px;
- margin:0;
- padding:0;
- z-index:1;
- }
- .gss a img {border : none;}
- .gss {
- width: 288px;
- height: 216px;
- border: 1px solid #000;
- background-color:#000;
- margin:-5px 5px 5px -5px;
- z-index: 2;
- color: white;
- }
- -->
- </style>
- </head>
- <body>
- <!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de -->
- <!-- la balise <div> ayant pour identifiant id="EmplacementDeMaCarte". -->
- <!-- Elle fera donc 100% de large et 400 pixels de haut. -->
- <div id="EmplacementDeMaCarte" style="width:100%; height:410px"></div>
- <!-- Si JavaScript n'est pas activé sur le navigateur, le message d'alerte situé entre <noscript></noscript> s'affiche-->
- <noscript>
- <p>Attention : Afin de pouvoir utiliser Google Maps, JavaScript doit être activé.</p>
- <p>Il semble que JavaScript soit désactivé ou qu'il n'est pas supporté par votre navigateur. Pour afficher Google Maps, activez JavaScript en modifiant les options de votre navigateur, puis essayez à nouveau.</p>
- </noscript>
- </body>
- </html>
Remarque(s)
N'oubliez pas de remplacer " Mettez_Votre_Clef_API_ Ici " par votre propre clé API,
Insérez, entre les balises <head></head>, le script gfslideshow.js,
Insérez ici l'URL vers le flux RSS de votre album photo PICASA.
Pour plus d'informations sur Google AJAX Feed API et Slide Show et leurs options vous pouvez consulter :
