GG Maps : max de marqueurs

Consultez la formation Google Maps, News, Images de WebRankInfo / Ranking Metrics


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1699
Inscription: Mer Aoû 01, 2007 19:00

GG Maps : max de marqueurs

Message le Jeu Nov 13, 2008 14:43

Bonjour,

je poursuis mon apprentissage de l'API GG maps.
quelques questions :

1- quel est le nombre maximum de marqueurs qu'on peut mettre sur une carte (j'utilise la géolocalisation) ?
2- j'envoie environ 500 adresses, et à chaque fois, la carte affiche une trentaine de marqueurs. pourquoi ?
3- le pire c'est que ces 30 marqueurs affichés ne sont jamais les mêmes !!!

merci de vos réponses et de m'éclaircir ma petite cervelle


OTP
Modérateur
Modérateur
 
Messages: 12922
Inscription: Ven Déc 16, 2005 22:41

Message le Jeu Nov 13, 2008 14:48

J'ai des cartes avec plusieurs milliers de marqueurs.

Tu es sur de tes formats lat/long (. ou ,) ?
Tu n'as pas de superpositions ?


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1699
Inscription: Mer Aoû 01, 2007 19:00

Message le Jeu Nov 13, 2008 14:50

comme indiqué j'utilise la géolocalisation (avec des adresses postales du format : 12, avenue du Général de Gaule 75001 Paris France)

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Jeu Nov 13, 2008 15:22

Salut,
C'est un peu n'importe quoi d'utiliser le géocodage pour placer des points, long, et couteux en ressources serveur. C'est pour cette raison que ce type de requête est limité chez google (à 10000 par jour il me semble), et peut être à X pour une carte, pour justement éviter ce que tu essaie de faire :wink:

Il faut que tu convertisse une fois pour toute tes adresses postales en adresses lat/lon, et que tu envoie à Google des adresses lat/lon ! Si tu veux j'ai un bout de script qui fait ça.


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1699
Inscription: Mer Aoû 01, 2007 19:00

Message le Jeu Nov 13, 2008 15:24

avec plaisir pour le script !!!!

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Jeu Nov 13, 2008 15:31

Je te laisse te dépatouiller avec ça, n'hésites pas si tu as un pb.

le script va cherche le premier client don lat/on n'est pas renseigné, et l'affiche sur une carte, tu valide et ça passe au suivant.

Code: Tout sélectionner
<?php
// CONNEXION BDD
// Base CLIENTS (id, nom, adresse, lat, lon)

// ENREGISTRERMENT GEOCODAGE
if (!empty($_POST[p]))
   {
   $p=explode(';',$_POST[p]);
   // sql_query effectue une requete à la base de donnee
   sql_query("UPDATE clients SET lat='".$p[0]."', lon='".$p[1]."' WHERE id='".$_POST[client]."'");
   echo '### Client n°'.$_POST[client].' enregistré (lat: '.$p[0].' ; lon: '.$p[1].')<br />';
   }

// SELECTION CLIENT A GEOCODER
// sql_getrow selectionne une ligne de la base de donnée
$client=sql_getrow("SELECT id, nom, adresse FROM clients WHERE lat=0 OR lon=0 ORDER BY id ASC LIMIT 0,1");
mysql_close($sql);

?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Géocodage clients</title>

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=CLE_API" type="text/javascript"></script>

<script type="text/javascript">
//<![CDATA[
   
if (GBrowserIsCompatible())
   {
   var map;
   var geo;

   function load()
      {
      map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(new GLatLng(45,5),5);
     
      // ====== Cree un Client Geocoder ======
      geo = new GClientGeocoder();

      // Envoie le binz
      showAddress();
      }

   // ====== Place un marqueur ======
   function place(lat,lng)
      {
      var point = new GLatLng(lat,lng);
      map.setCenter(point,14);
      map.addOverlay(new GMarker(point));
      document.getElementById("message").innerHTML = "";
      document.getElementById('p').value=lat + ';' + lng;
      document.getElementById('save').disabled=false;
      }

   // ====== Geocoding ======
   function showAddress()
      {
      document.getElementById('p').value='';
      document.getElementById('save').disabled=true;

      var adresse = document.getElementById("adresse").value;
      geo.getLocations(adresse, function (result)
         {
         map.clearOverlays();
         // ======== REPONSE(S) =========
         if (result.Status.code == G_GEO_SUCCESS)
            {
            // ======== Multi réponses =========
            if (result.Placemark.length > 1)
               {
               document.getElementById("message").innerHTML = "Vous avez voulu dire :";
               for (var i=0; i<result.Placemark.length; i++)
                  {
                  var p = result.Placemark[i].Point.coordinates;
                  document.getElementById("message").innerHTML += "<br>"+(i+1)+"- <a href='javascript:place(" +p[1]+","+p[0]+")'>"+ result.Placemark[i].address+"</a>";
                  }
               }
            // ======== Simple réponse =========
            else
               {
               p = result.Placemark[0].Point.coordinates;
               document.getElementById('returned_adresse').innerHTML=result.Placemark[0].address;
               place(p[1],p[0]);
               }
            }
         // ====== ERREUR ======
         else alert('Erreur : Code ' + result.Status.code);
         });
      }
   }

else alert("Désolé, Google Maps API n'est pas compatible avec votre navigateur");

//]]>
</script>
</head>

<body onload="load()" onunload="GUnload()" >

<form onsubmit="showAddress(); return false">
   <?php echo $client[nom]; ?> <input id="adresse" size="60" type="text" value="<?php echo $client[adresse]; ?>">
   <input type="submit" value="Géo !">
</form>



<form action="geocodage_clients.php" method="post">
Adresse [<span id="returned_adresse"></span>] géocodée  <input type="text" id="p" name="p" readonly></input><input type="hidden" id="client" name="client" value="<?php echo $client[id]; ?>"></input> <input type="submit" id="save" name="save" value="Enregistrer !" disabled>
</form>

<div id="message"></div>
<div id="map" style="width: 600px; height: 400px"></div><p>

</body>
</html>


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1699
Inscription: Mer Aoû 01, 2007 19:00

Message le Jeu Nov 13, 2008 15:33

+1 reco :-)

merci pour tout je vais analyser cela


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1699
Inscription: Mer Aoû 01, 2007 19:00

Message le Jeu Nov 13, 2008 16:44

sinon je viens de trouver cela ça peut aider pas mal de gens !!!! :

http://pagesperso-orange.fr/universimme ... loc_fr.htm

à bookmarker

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Jeu Nov 13, 2008 17:02

Sauf que
- ça ne renvoie que la première réponse : tape "place de la poste", tu verra.
- Si tu dois traiter quelques dizaines d'URL, bonjour le problème. Ma solution est branchée sur ta base de donnée, donc en un clic tu envoie la sauce :wink:


rudddy
WRInaute accro
WRInaute accro
 
Messages: 1699
Inscription: Mer Aoû 01, 2007 19:00

Message le Jeu Nov 13, 2008 17:04

non c'est clair mais je disais juste que ça pouvais aider surement certaines personnes mais ton script m'a énormément aidé

merci encore

HOURCADE
Nouveau WRInaute
 
Messages: 16
Inscription: Lun Nov 10, 2008 13:39

Message le Lun Nov 17, 2008 22:01

Bonjour tout le monde !

jeroen t'as fct "place" m'intéresse beaucoup mais voilà j'aurai 2-3 questions:
Code: Tout sélectionner
   function place(lat,lng)
      {
      var point = new GLatLng(lat,lng);
      map.setCenter(point,14);
      map.addOverlay(new GMarker(point));
      document.getElementById("message").innerHTML = "";
      document.getElementById('p').value=lat + ';' + lng;
      document.getElementById('save').disabled=false;
      }


Qu'est ce que c'est que "GLatLng" ?
l'api "map.addOverlay(marker)" permet d'ajouter une balise.
Mais dans ton code tu met "new GMarker", qu'est ce que que GMarker ??

merci de bien vouloir répandre à mes petites questions svp
merci beaucoup !

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Lun Nov 17, 2008 22:20

GLatLng crée un Point défini par sa Latitude et sa Longitude
Gmarker crée un marqueur a partir de ce point.

La doc google est là :
http://code.google.com/apis/maps/docume ... ml#GLatLng
http://code.google.com/apis/maps/docume ... ml#GMarker

HOURCADE
Nouveau WRInaute
 
Messages: 16
Inscription: Lun Nov 10, 2008 13:39

Message le Lun Nov 17, 2008 23:08

Merci pr ta réponse jeroen

Je profite de tes connaisances pour te demander une derniére chose :
Pour utiliser l'API "GMarker.openInfoWindow(content, opts?)" il est marquer "The content of the info window is given as a DOM node." Mais qu'est ce le DOM node ?

Merci infiniment

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Lun Nov 17, 2008 23:37

Si tu ne maîtrise pas les DOM, je te laisse jeter un coup d'oeil par là : http://fr.selfhtml.org/javascript/objet ... eneralites

HOURCADE
Nouveau WRInaute
 
Messages: 16
Inscription: Lun Nov 10, 2008 13:39

Message le Ven Nov 21, 2008 16:11

Salut,

function place(lat,lng)
{
alert('lat '+ lat);
alert('lng '+ lng);
var point = new GLatLng(lat,lng);
map.setCenter(point,14);
map.addOverlay(new GMarker(point));
}

Je ne comprends pas pourquoi mais la fct ne place pas de repère au coordonnée souhaité (lat=43.57691664771851 et lng=1.402451992034912);

Merci

GG Maps : max de marqueurs

Formation recommandée sur ce thème :

Formation Google Maps, Google News et Google Images : apprenez comment optimiser le référencement de votre site pour la recherche universelle et notamment Google Maps, Google Actualités et Google Images. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités