Obtenir les coordonnées d'une ville automatiquement

WRInaute occasionnel
Bonjour,
j'essaie de mettre google map sur un de mes sites avec des marqueurs dont la liste est dans un fichier xml. Ce fichier sera rafraichi automatiquement tout les jours.
Le fichier xml contient plusieurs éléments qui viendront d'une bdd dont le nom de la ville.
Pour pouvoir affichier le marqueur, je dois mettre les coordonnées de la ville dans le fichier xml.

Comment puis-je obtenir les coordonnées de la ville automatiquement?
Avec google map, il y a la fonction geocoder mais puis-je l'utiliser uniquement lorsque je raffraichi la page xml?
Si oui, comment dois-je m'y prendre?
 
WRInaute passionné
va falloir utiliser ses petits doigts pour coder un peu.

Sinon les données sources sont fournies, à toi de les exploiter
 
WRInaute impliqué
l'API de Google maps propose une fonction de géocodage

Code:
<html>
<head>
<script src="http://maps.google.com/maps?file=api&v=2&key=taclé" type="text/javascript"></script>

<script type="text/javascript">
    //<![CDATA[

    var map = null;
    var geocoder = null;

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());
        geocoder = new GClientGeocoder();
		showAddress("23 rue de la Poterie, 14400 Bayeux, france")
      }
    }

    function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 15);
              var marker = new GMarker(point);
              map.addOverlay(marker);
            }
          }
        );
      }
    }
    //]]>
</script>
</head>

<body onload="load()" onunload="GUnload()">
  <div id="map" style="WIDTH: 710px; HEIGHT: 500px"></div>
</body>
</html>

A toi de t'en inspirer
 
WRInaute occasionnel
Le probleme est qu'il faut utiliser la fonction geocoder a chaque affichage de la page et le nombre de requêtes est limité => après quelques affichages, je n'aurais plus acces à cette fonction.

C'est pour ca que je veux mettre les coordonnées dans un fichier xml mais je n'y arrive pas.
il y a t-il moyen d'utiliser la fonction geocoder sans afficher la carte?
 
WRInaute occasionnel
je l'ai lu sur un site expliquant l'intégration de google map.
Et le nombre max de requêtes est de 50 000


J'ai encore l'adresse du site (je crois que c'est le site d'un membre de wri) mais je ne sais pas si je peux l'afficher
 
WRInaute occasionnel
50.000 geocodages / jours autorisés il me semble, au dela il faut un compte special (payant).

sinon tu fais 50.000 geocodages / jours jusqu a ce que tu ai toutes les latitudes / longitudes de tes villes.

Tu peux utiliser l'API Php dispo ici : http://www.phpinsider.com/php/code/GoogleMapAPI/


En gros :

$geocode = $map->getGeocode('15 rue webrankinfo 75000 Paris FR');

echo $geocode['lat']; // ta latitude
echo $geocode['lon']; // ta longitude

tu range ca dans ta bd (ajoute les 2 champs latitude et longitude si tu ne les a pas créés).

Voila
 
WRInaute impliqué
A ça y est j'ai enfin trouvé ou c'était écrit, faut vraiment tout éplucher chez google pour avoir l'info :

https://www.google.com/apis/maps/terms.html
1.6 Geocode Requests. There is a limit of 50,000 geocode requests per day per Maps API key. This translates to roughly one geocode request every 1.73 seconds. If you exceed this 24-hour limit, the Maps API geocoder may stop working for you temporarily. If you continue to abuse this limit, your access to the Maps API geocoder may be blocked permanently.

Après faut voir, 50 000 requêtes c'est énorme déjà.

J'utilise l'api google dans un certain nombre de sites internet, en gros voila comment je fonctionne :

Quand j'ajoute une adresse dans ma base de données, je fait appel à la fonction de géocodage, puis quand les infos me sont retournés, j'update ma base avec les coordonnées. (ce serait tout de même étonnant d'ajouter 50 000 nouvelles adresses / jours)

Pour extraire les infos : https://www.google.com/apis/maps/documen ... Structured
 
Nouveau WRInaute
Attention : Utilisation des cartes Google map obligatoire

Cet API m'interresse beacoup, mais je viens de découvrir une limitation qui me gène :
"Note: the Geocoding API may only be used in conjunction with a Google map; geocoding results without displaying them on a map is prohibited. For complete details on allowed usage, consult the Maps API Terms of Service License Restrictions."
http://code.google.com/intl/fr/apis/maps/documentation/geocoding/
Autrement dit, je ne peux pas vendre une application qui utilise geocoding pour remplir une base de donnée si je n'affiche pas la carte google map. J'aurai préférer utiliser une carte faite maison.

N'y a-t-il pas d'autre source de coordonnées, même payantes, mais qui n'ai pas de telles limites d'utilisations ?
 
Discussions similaires
Haut