Partage
  • Partager sur Facebook
  • Partager sur Twitter

Google Image API

Afficher plus de 8 résultats et scaling des Thumbnails

    1 novembre 2010 à 18:23:43

    Bonjour,

    Je suis en train de concevoir une page Web utilisant l'API de Google afin de créer un mur photo. En somme mon script charge un fichier XML contenant des noms de personnes connues. Au survol de chaque LI contenant la photo d'un people, le script lit l'attribut "alt" de l'image et utilise son contenu afin d'effectuer une recherche d'images.

    Cela fonctionne mais le soucis est que j'aimerais afficher plus de 8 résultats afin de remplir la surface visible. Et impossible de résoudre ce soucis. De même, j'essaye d'utiliser la méthode de scaling des thumbnails mais rien n'y fait me retournant une erreur : return is not defined.

    google.load('search', '1'/*, {"nocss" : true}*/);
            function OnLoad() {
              var onHover;
            $('li').live('mouseenter', function() { 
                onHover = $(this).children().children().attr('alt');
            
              // Create a search control
             var searchControl = new google.search.SearchControl();
              // Create an ImageSearch
              var imageSearch = new google.search.ImageSearch();
    		  imageSearch.setResultSetSize(7);
    		  this.imageScaler = {width:100,height:75};
    		
    		var scaled = google.search.Search.scaleImage(result.tbWidth, result.tbHeight,  this.imageScaler);
    
    		
    		  // Create an option
    		  var options = new google.search.SearcherOptions();
    			options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
    
              
              // create a drawOptions object
                var drawOptions = new google.search.DrawOptions();
                
                // tell the searcher to draw itself in linear mode
                drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_LINEAR);
              
            // Définition des options du champ de résultats
            //var options = new google.search.SearcherOptions();
            // Option permettant d'afficher tout les résultat trouvés, et des pages supplémentaires si les résultats sont nombreux
            // options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
    
              // Restrict to faces.  Other options include:
              // IMAGETYPE_NEWS
              // IMAGETYPE_PHOTO
              imageSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGETYPE,
                                         google.search.ImageSearch.IMAGETYPE_FACES);
              // Add the searcher to the SearchControl
              searchControl.addSearcher(imageSearch, options);
            
              // tell the searcher to draw itself and tell it where to attach
              searchControl.draw(document.getElementById("api"), drawOptions);
            
            $('a.gs-image').live('click',function(event){		
                return false;
            });
            $('.gsc-search-box, .gsc-resultsHeader').remove();
    
              // Use the onHover to perform a search	  
              searchControl.execute(onHover);
            });
            }
            google.setOnLoadCallback(OnLoad);
    


    Si vous connaissez le moyen de redimensionner les Thumbnails et d'afficher plus de 4 à 8 résultats, je suis donc preneur.

    Merci d'avance,
    • Partager sur Facebook
    • Partager sur Twitter
      1 novembre 2010 à 18:55:00

      Ce serait pas plutôt "result is undefined", ton erreur ? Cf ligne 14.

      Sinon, d'après la doc, il semblerait que tu ne puisses pas obtenir plus de 8 résultats d'un coup...
      Tu peux peut-être utiliser la méthode gotoPage() pour parcourir les résultats suivants ?
      • Partager sur Facebook
      • Partager sur Twitter
        1 novembre 2010 à 20:22:58

        Mea culpa, c'est en effet "result is undefined". Mais je ne sais pas du tout que mettre en lieu et place du result et vers quoi ce return doit renvoyé (Searcher ?).

        Mmh, pour le gotoPage() cela permet d'afficher une autre page par défaut que la 1e page. Mais comment afficher toutes les pages grâce à cette méthode ? Dupliquer les SearchControl et initialiser le goToPage() avec des index différents ? Un peu bourrin mais bon =/

        Je ne suis pas limité à l'emploi de l'API Google, si vous connaissez d'autres API de recherches d'images, je prends (FlickR ?).
        • Partager sur Facebook
        • Partager sur Twitter

        Google Image API

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown