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

APIs Google Discussion :

Nombre de marker limité à 11 ? [Google Maps]


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Par défaut Nombre de marker limité à 11 ?
    Bonjour,
    Curieusement sur ma carte impossible d'afficher plus de 11 marker ?
    J'ai beau changer l'adresse de localisation, supprimer le 11éme et en remettre un, mes markers sur ma carte se limitent à 11 ?!
    Sur mon xml ils apparaissent pourtant tous (12):
    http://www.parking2roues.com/gmaps/p...ax_genxml3.php

    L'adresse de ma carte :
    http://www.parking2roues.com/gmaps/p...ax_map_v3.html

    Je ne comprends pas d'où cela peut venir, une idée ??

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    fait une recherche du coté de OVER_QUERY_LIMIT.
    http://www.developpez.net/forums/d10...e/#post5964793

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Par défaut
    Merci encore pour tes réponses éclairées... Cependant si je relance ma fonction ça ne marche pas.
    J'ai essayé (un peu à l'aveugle je dois bien l'admettre) mais rien n'y fait...
    En fait je ne sais pas comment passer les paramètres dans ma fonction "load" que je relance.
    Saurais-tu me dire comment relancer ma fonction avec les bons paramètres ?

    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
    <script type="text/javascript">
        //<![CDATA[
     
    var geocoder;
     
     
     
    function load() {
      geocoder = new google.maps.Geocoder();
      var map = new google.maps.Map(document.getElementById("map"), {
        center: new google.maps.LatLng(46.841407,2.476044),
        zoom: 6,
        mapTypeId: 'roadmap'
      });
     
       var infoWindow = new google.maps.InfoWindow;
     
      // Change this depending on the name of your PHP file
      downloadUrl("phpsqlajax_genxml3.php", function (data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
     
     
        for (var i = 0; i < markers.length; i++) {
     
          var address = markers[i].getAttribute("address");
          var urlp2r = markers[i].getAttribute("urlp2r");
          var catP = markers[i].getAttribute("catP");
          var adressep2r = markers[i].getAttribute("adressep2r");
          var myIcon = markers[i].getAttribute("iconPerso");
    	  var annonceP = markers[i].getAttribute("annonceP");
    	  var html = "<div style=\"font-family:arial;\"><img src=\""+ myIcon +"\" /><b>" + annonceP + "</b> <br/>" + adressep2r + " <br /><a href=" + urlp2r +" target=\"_top\" >Détails de cet emplacement sur parking2roues.com</a>";
     
    	 //alert(myIcon);
     
      		  (function(capturedHtml, icon){
    			  geocoder.geocode({
    				'address': address
    			  }, function (results, status) {
    				/* Si l'adresse a pu etre geolocalisee */
    				if (status == google.maps.GeocoderStatus.OK) {
     
    				  /* Affichage du marker */
    				  var marker = new google.maps.Marker({
    						map: map,
    						icon: icon,
    						position: results[0].geometry.location,
    						title: "mon titre"
    					  });
     
    				  bindInfoWindow(marker, map, infoWindow, capturedHtml, icon);
    				}
     
    	else{
          // on traite l'erreur OVER_QUERY_LIMIT
          if( status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
            // relance la requete
            setTimeout( function(){
              load(); // rappel fonction avec meme param
            }, 200);
          }
          else{
            // affichage erreur
            oElem.innerHTML = "Geocoder failed due to: " + status;
          }
        }
     
     
    			  });
    			})(html, myIcon);
     
            }
          });
     
        }
     
       function bindInfoWindow(marker, map, infoWindow, html) {
          google.maps.event.addListener(marker, 'click', function() {
            infoWindow.setContent(html);
            infoWindow.open(map, marker);
          });
        }
     
        function downloadUrl(url, callback) {
          var request = window.ActiveXObject ?
              new ActiveXObject('Microsoft.XMLHTTP') :
              new XMLHttpRequest;
     
          request.onreadystatechange = function() {
            if (request.readyState == 4) {
              request.onreadystatechange = doNothing;
              callback(request, request.status);
            }
          };
     
          request.open('GET', url, true);
          request.send(null);
        }
     
        function doNothing() {}
     
     
     
        //]]>
     
      </script>


    J'ai également explorer l'option "delay" mais sans succès

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Par défaut
    Bon, je ne sais pas si c'est correct, mais j'ai trouvé une solution qui fonctionne avec set time out :

    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
        for (var i = 0; i < markers.length; i++) {
     
    	setTimeout( function(i){
     
          var address = markers[i].getAttribute("address");
          var urlp2r = markers[i].getAttribute("urlp2r");
          var catP = markers[i].getAttribute("catP");
          var adressep2r = markers[i].getAttribute("adressep2r");
          var myIcon = markers[i].getAttribute("iconPerso");
    	  var annonceP = markers[i].getAttribute("annonceP");
    	  var html = "<div style=\"font-family:arial;\"><img src=\""+ myIcon +"\" /><b>" + annonceP + "</b> <br/>" + adressep2r + " <br /><a href=" + urlp2r +" target=\"_top\" >Détails de cet emplacement sur parking2roues.com</a>";
     
    	 //alert(myIcon);
     
      		  (function(capturedHtml, icon){
    			  geocoder.geocode({
    				'address': address
    			  }, function (results, status) {
     
    	/* Si l'adresse a pu etre geolocalisee */
    				if (status == google.maps.GeocoderStatus.OK) {
     
    				  /* Affichage du marker */
    				  var marker = new google.maps.Marker({
    						map: map,
    						icon: icon,
    						position: results[0].geometry.location,
    						title: "mon titre"
    					  });
     
    				  bindInfoWindow(marker, map, infoWindow, capturedHtml, icon);
    				}
     
    			 });
    			})(html, myIcon);
     
    			 }, i*350, i );
            }
    Les markers s'affichent les uns après les autres, ça donne un petit côté "original"

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    J'avais fais des essais et il me semble me souvenir que tu peux même descendre à la valeur à 200, mais bon...

    En utilisant cette méthode tu ne t’affranchis pas de la modification des LIMIT que fixe Google tant au niveau du temps qu'au niveau du nombre.
    Il y a également la qualité de la ligne qui peu intervenir même si dans ce cas il ne devrait pas y avoir de problème.

    Si tu veux un effet il existe la méthode animation sur les markers.

    Ma plus grosse interrogation sera quand même, quel est l'intérêt de faire les requêtes à chaque chargement, mets les latLng dans ton fichier XML, tu n'auras plus à te soucier de OVER_QUERY_LIMIT.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. nombre d'enregistrements limite dans une table sql
    Par lilou229 dans le forum Outils
    Réponses: 3
    Dernier message: 30/01/2007, 15h21
  2. [Configuration] nombre de scripts limité avec buffers de sorties
    Par alcor dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 08/04/2006, 22h59
  3. Réponses: 12
    Dernier message: 16/02/2006, 20h03
  4. Réponses: 1
    Dernier message: 06/11/2005, 17h55
  5. Récupération d'un nombre d'enregistrement limité
    Par hugo123 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/09/2005, 17h34

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