Google maps api et géolocalisation

WRInaute impliqué
Bonjour,
J'ai un forum avec certaines informations sur le lieu de résidence de mes membres.
Je souhaiterai pour chaque membre, afficher un marqueur de sa géolocalisation sur une carte.
Quelqu'un à des pistes sur ce sujets ?
un exemple concret de ce que je souhaite réaliser
-http://placelibre.ath.cx/map.php
 
WRInaute impliqué
ok j'ai trouvé.
Pour ceux que cela interesse
-http://www.xml.com/pub/a/2005/08/10/google-maps.html?page=1
 
WRInaute occasionnel
Voir mon www, le placement des marqueurs y est fait en Ajax.
Je peux te répondre sur des problèmes précis si tu en rencontres.
Deux liens très utiles :
* le forum de discussion :
-http://groups.google.com/group/Google-Maps-API
* la doc
-https://www.google.com/apis/maps/documentation/
-https://www.google.com/apis/maps/documentation/reference.html

Lionel
 
WRInaute impliqué
Petite ou grande explication.

1) il vous faut une clé pour l'api googlemaps
Une fois cette clé obtenue vous pourrez utiliser les services de Google Maps

2) Je vous donne mon exemple : Créer une carte en positionnant des marqueurs pour chaque membre de son forum. Les marqueurs contiendront des informations telles que son pseudo, sa date de naissance...

Voici le code source
Remplacer LACLEF par votre clef ;-)
Code:
<!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=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=LACLEF" type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(48.8569407746536, 2.34125843355591), 2);
				
				
				// Creates a marker at the given point with the given number label
        function createMarker(point, pseudo) {
          var marker = new GMarker(point);
          GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml("Marker #<b>" + pseudo + "</b>");
          });
          return marker;
        }
        
        // Pour rechercher la latitude et la longitude d'une ville
        // http://www.travelgis.com/geocode/Default.aspx
        GDownloadUrl("data.xml", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
            var pseudo = markers[i].getAttribute("pseudo");
            map.addOverlay(createMarker(point, pseudo));
          }
        });
      }
    }
    //]]>
    </script>
  </head>

  <body onload="load()" onunload="GUnload()">
  <div id="map"  style="width: 800px; height:500px;"></div>
  </body>
</html>


Pour obtenir la lattitude et la longitude des villes j'utilise ce site Internet:
http://www.travelgis.com/geocode/Default.aspx
J'ai pu obtenir la géolocalisation de Paris
Lattitude : 48.8569407746536
Longitude : 2.34125843355591

Ce qui me permets de centrer ma carte
Code:
map.setCenter(new GLatLng(48.8569407746536, 2.34125843355591), 2);
Le 2 correspond au niveau de zoom (dans ce cas cela donne la carte du monde)


Function permettant de créer des marqueurs sur la carte. On y rajoute un écouteur d'événements en lui passant différents paramêtres. (Les parametres que vous souhaitez afficher sur vos membres)
Code:
function createMarker(point, pseudo) {
          var marker = new GMarker(point);
          GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml("Marker #<b>" + pseudo + "</b>");
          });
          return marker;
        }

Les parametres sont issus d'un fichier xml. voici sa forme :
Code:
<markers>
<marker lat="48.8569407746536" lng="2.34125843355591" pseudo="narayana"/>
...
...
</markers>
Vous pouvez rajouter autant d'informations que vous souhaitez à la suite du pseudo.

la fonction
Code:
GDownloadUrl("data.xml", function(data)
charge les données issues du fichier xml. On positionne les marqueurs et ses informations en listant tous les éléments du fichier xml comme suit:

Code:
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
            var pseudo = markers[i].getAttribute("pseudo");
            map.addOverlay(createMarker(point, pseudo));

Voilà en gros comment cela fonctionne.
Pour plus d'infos les liens d'ltressens sont très bien.
 
WRInaute occasionnel
Pour connaitre la position GPS des communes de France :
-http://www.galichon.com/codesgeo/data/ville.zip

Lionel
 
WRInaute impliqué
Une question maintenant que j'ai fini :
Il y a t-il possibilité d'enlever la popup d'avertissement d'arret de script ?
il y a t-il moyen de mettre en cache les resultats google pour une optimisation de l'affichage ?
 
WRInaute discret
Merci naryana pour l'exemple ;)

Sinon je peux pas ouvrir ton fichier ltressens, il est trop gros pour Open Office :(
Peux tu me le transmettre en CSV ou me donner le formatage du fichiaer pour j'essaie de l'importer sous phpMyAdmin ?

Merci
 
WRInaute impliqué
Le message Arreter le script apparait si vous avez plus de 211 marqueurs sur la carte.
Alors il faut passer par un script de regroupement qui en quelque sorte regroupe les marqueurs en un seul.
 
Nouveau WRInaute
Voilà un site ou il y a de la géolocalisation de membres par Google Earth, c'est vrai que sur GE c'est bien plus beau et interessant !

http://www.thecitylocal.com/

Et l'adresse du Network Links
(assez long à charger, au moins 1000 placemarks)

http://www.thecitylocal.com/scripts/TheCityLocal-fr.kmz

Par contre au niveau du "regroupement de marqueurs" sur GM, tu pourrais nous en dire plus ?
(Possible même avec une sidebar avec une liste de membres ?)
 
Nouveau WRInaute
Bonjour,
Nouveau sur ce forum, je me permets de m'immiscer dans la discussion en cours pour savoir si l'un d'entre vous sait comment faire pour réduire la taille de la fenêtre d'information qui s'ouvre quand on clique sur un marqueur. J'ai bien été voir la doc de google maps, ainsi que leur groupe de discussion mais peut-être à cause de mon niveau en anglais je n'ai rien trouvé qui ressemblait à mon pb. Si quelqu'un se l'est posé aussi et l'a résolu, je suis intéressé :wink:
Merci
Francis
 
Nouveau WRInaute
voilà qui devrait résoudre pas mal de problèmes de géolocalisation :
http://googlemapsapi.blogspot.com/2006/ ... -last.html
:D

francisb44 a dit:
Bonjour,
Nouveau sur ce forum, je me permets de m'immiscer dans la discussion en cours pour savoir si l'un d'entre vous sait comment faire pour réduire la taille de la fenêtre d'information qui s'ouvre quand on clique sur un marqueur. J'ai bien été voir la doc de google maps, ainsi que leur groupe de discussion mais peut-être à cause de mon niveau en anglais je n'ai rien trouvé qui ressemblait à mon pb. Si quelqu'un se l'est posé aussi et l'a résolu, je suis intéressé :wink:
Merci
Francis
je ne crois pas que ce soit possible. Vois toujours sur ce tutorial qui est très bien fait :
http://www.econym.demon.co.uk/googlemaps/
 
WRInaute discret
kroston a dit:
voilà qui devrait résoudre pas mal de problèmes de géolocalisation :
http://googlemapsapi.blogspot.com/2006/ ... -last.html

Merci pour ce lien... c'est une info très importante! L'API de Google Map offre, depuis quelques jours, un service de géocodage! Google annonce environ 200 pays gérés par leur système,... c'est vraiment une évolution digne d'intérêts mais pour l'instant ça manque un peu de documentation!

De toute façon il faut bien distinguer les deux aspects:

1) Représenter sur une carte (ou sur Google earth) des données dont on connait la localisation. Il y a google map pour ça mais aussi plein d'autres possibilités (petit tutoriel ici)

2) Obtenir les coordonnées géographiques des utilisateurs d'un forum par exemple. Et là il y a aussi plusieurs possibilités

  • 2a) Obtenir cette information à l'inscription en utilisant les possibilités de Google Map. L'utilisateur clique sur la carte à l'endroit où il habite et avec la fonction adéquate (voir la doc de Google map) on récupère les coordonnées lat/long (sur cet exemple on récupère les coordonnées du point cliqué et on les affiche dans une info-bulle)

    2b) Utiliser l'adresse du nouveau membre pour remonter à ces coordonnées lat/long grace à un service de géocodage (dont le nouvel outil intégré à l'API Google map)

    2c) Utiliser la ville et le pays du nouveau forumeur pour retrouver les coordonnées géographiques de sa ville grace aux bases de données par pays distribuées sur GEOnet Names Server

Je vais essayer de trouver plus d'info sur le service de géocodage de l'API Google Map. Si qqn a un lien à proposer...?
 
Nouveau WRInaute
Bonjour,

J'ai l'impression que les maps de G! maps datent un peu... de 2002 ?

C'est ce que j'ai constaté pour mon domicile (nouveau lotissement construit en 2002) et certaines rues n'existent pas...

Avez-vous fait le même constat ?

Avez-vous une liste plus complète de la liste des sites contribuant à G! maps ? (ie comme viamichelin, lefigaro et autres ? )

Merci
 
WRInaute occasionnel
Les cartes de TeleAtlas sont de qualité très médiocres.
Les antilles, la reunion en sont par exemples absentes.
 
Nouveau WRInaute
RP-VTT
2a) Obtenir cette information à l'inscription en utilisant les possibilités de Google Map. L'utilisateur clique sur la carte à l'endroit où il habite et avec la fonction adéquate (voir la doc de Google map) on récupère les coordonnées lat/long (sur cet exemple on récupère les coordonnées du point cliqué et on les affiche dans une info-bulle)

2b) Utiliser l'adresse du nouveau membre pour remonter à ces coordonnées lat/long grace à un service de géocodage (dont le nouvel outil intégré à l'API Google map)

2c) Utiliser la ville et le pays du nouveau forumeur pour retrouver les coordonnées géographiques de sa ville grace aux bases de données par pays distribuées sur GEOnet Names Server

Une autre méthode serait d'utiliser l'adresse IP de l'internaute pour le géo-localiser. Nous avons la chance en France d'avoir un développement dense de l'ADSL permettant de connaître à 1 km près en moyenne la localisation des internautes. Mais hélas, cette méthode ne fonctionne que dans 75-80% des cas.... :(
 
WRInaute discret
Bonjour

sur le meme sujet: Qui utilise cette classe php: GoogleMapAPI.class
de: http://www.phpinsider.com/php/code/GoogleMapAPI/

Je voudrais savoir s'il est possible avec cette classe d'utiliser sa propre BD avec les lat et lon enregistrées dans ma base.
C'est a dire pouvoir passer a la fonction JS une lat et lon:
Code:
map.setCenter(new GLatLng($varphp, -$var2php), 13);

Comme php est parsé sur le serveur et JS sur le navigateur, je vois pas :(
 
WRInaute discret
Icones Google maps

Bonjour,
J'ai crée une page avec une google maps pour localiser mes partenaires ici:
http://www.chambres-d-hotes-uxondoa.com ... tes-france
Etant absolument nul en anglais, je ne vous cache pas que cela m'a valu quelques galères. Donc pour cette raison je pose la question ici:
Il y a t-il une page où je puisse trouver d'autres icones google. Car celles que j'ai trouvées ne sont pas top.
Si cette page n'existe pas, est il autorisé d'y inclure ses propres icones?
J'ai fais l'essais en local ça fonctionne.
Merci.
 
Nouveau WRInaute
Bonjour,

J'aimerais faire la même chose que poulet i.e. afficher sur une carte de la ville plusieurs établissements.

C'est pour un site annuaire qui référence différents établissements d'une ville et dont la base de données contient les adresses précises. Si je tape cette adresse dans l'interface de google maps, j'ai directement l'icône au bon endroit sans y rentrer les coordonnées XY. Comment faire un script javascript pour avoir automatiquement la plan google maps lorsqu'on clique depuis le site (en transferant l'adresse que j'ai dans la base) ? J'aimerais pouvoir localiser un établissement ainsi mais aussi tous d'un coup, de façon à voir rapidement ceux qui sont à côté d'où habite l'internaute.

Quelqu'un a-t-il la solution ?

Merci par avance
 
Nouveau WRInaute
Géolocalisation

Le site http://www.tageo.com donne les coordonnées géographiques pour toutes les communes du monde. Pour chaque lieu il y a un lien direct vers google maps et export en kml pour google earth.
 
Nouveau WRInaute
site très intéressant. merci pour l'info.
en revanche, pour les rues d'une ville (c'est ce que je recherche), le site n'est pas assez fin. En connaissez-vous d'autres pour situer des rues de villes françaises ?
 
WRInaute discret
Bonsoir,
Intéressant ?
Il met saint Jean de Luz, Ville des Pyrénées Atlantiques en Espagne à 30 km de sa place. Alors pour les rues ?
Par contre sur Google maps en mettant le nom d'une rue, la plupart du temps c'est trouvé.
 
Nouveau WRInaute
oui je sais, mais ma question est comment le faire de façon automatique. J'ai une base de données avec les adresses, comment envoyer la requête à Google Maps pour qu'il affiche le plan avec un tag localisé sur la rue ?
 
Nouveau WRInaute
Pour ceux que ça intéresse je peux donner des infos sur la manière dont est réalisé un site comme celui ci :

Agence immobilière Dakar : http://www.ofim-sn.com

L'originalité du site, en dehors de la partie purement google maps api est de géolocaliser grâce à un tracker gps qui enregistre la position dans les données exif des photos jpg des maisons...

FRED
 
WRInaute accro
fwoehl a dit:
L'originalité du site, en dehors de la partie purement google maps api est de géolocaliser grâce à un tracker gps qui enregistre la position dans les données exif des photos jpg des maisons...
Ca fait un peu je veux obtenir un BL pour mon site, car j'ai regardé tes photos et il n'y a aucune meta exif :roll:
 
Discussions similaires
Haut