Classement par pays/régions/provinces/communes - Google Geocoding API


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Ven Juin 04, 2010 11:34

Bonjour,

Cela fait un moment que j'aimerais pouvoir classer des enregistrements par pays/régions/provinces/communes/localités.
J'ai bien trouvé des bases de données:
http://download.geonames.org/export/dump/
http://www.geobytes.com/FreeServices.htm (GeoWorldMap)
Mais c'est énormément de données et pas forcément simple à mettre en œuvre dans le sens où chaque pays a ses spécificités (cantons, provinces, communes, départements, états,...).

J'arrive à extraire les données de Google Geocoding API:
http://code.google.com/intl/fr/apis/maps/documentation/geocoding/index ... html#Types
Avec les types de données fourni par l'API, je peux connaitre toutes ces informations ainsi que la hiérarchie.

country > administrative_area_level_1 > administrative_area_level_2 > administrative_area_level_3 > colloquial_area > locality > sublocality

Venons en à la question:
Je pense enregistrer ces données sous forme de "tags" avec une hiérarchie (id / parent_id).
Code: Tout sélectionner
id
parent_id
content_id
type (administrative_area_level_1,  administrative_area_level_2,...)
title
lang

Ainsi je pourrais trier les données par chaque "tag" (régions, provinces, communes,...) et connaitre la hiérarchie entre les régions.

Pensez-vous que cette méthode pourrait être correcte / efficace ?

(NB: c'est bien pour utiliser Google Geocoding API conjointement à Google Maps API comme spécifié dans les conditions d'utilisation)

Merci d'avance pour vos réponses.
Dernière édition par spout le Ven Juin 04, 2010 15:58, édité 1 fois.


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2215
Inscription: 10 Avr 2005

Re: Classement par pays/régions/provinces/communes

Message le Ven Juin 04, 2010 15:43

Salut,

Personnellement j'utilise la même méthode.

Code: Tout sélectionner
LOCATION
loc_id
loc_intitule
location_id (le parent)

Avant j'avais un "niveau_id" mais je viens de me rendre compte qu'il n'a pas trop d'intérêt.
Code: Tout sélectionner
niveau 1 = pays
niveau 2 = région (en France, par exemple)
niveau 3 = département (en France, par exemple)

En effet le premier niveau à un parent à NULL, et le reste se déduit récursivement avec l'id du parent.


Par contre j'ai abandonné le fait de gérer des villes, trop compliqué à maintenir à jour et à gérer.


Je me pose d'ailleurs la question au niveau d'un formulaire d'inscription (exemple de la France Toujours)
> Niveau 1 : choix du pays (select, liste déroulante)
>> AJAX
> Niveau 2 : choix de la région (select, liste déroulante)
> AJAX
> Niveau 3 : choix du département (select, liste déroulante)
> AJAX
> Niveau 4 : choix de la ville (select, liste déroulante)

ou
> Niveau 1 : choix du pays (select, liste déroulante)
> Niveau 2 : auto-complétion (AJAX sur le nom, mais de quel niveau ? à partir du Code Postal, mais tous les pays n'en ont pas ?)


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Classement par pays/régions/provinces/communes

Message le Ven Juin 04, 2010 15:48

dorian53 a écrit:Je me pose d'ailleurs la question au niveau d'un formulaire d'inscription (exemple de la France Toujours)
> Niveau 1 : choix du pays (select, liste déroulante)
>> AJAX
> Niveau 2 : choix de la région (select, liste déroulante)
> AJAX
> Niveau 3 : choix du département (select, liste déroulante)
> AJAX
> Niveau 4 : choix de la ville (select, liste déroulante)

ou
> Niveau 1 : choix du pays (select, liste déroulante)
> Niveau 2 : auto-complétion (AJAX sur le nom, mais de quel niveau ? à partir du Code Postal, mais tous les pays n'en ont pas ?)


Réponse 2 mais sans le choix du pays, il se fait tout seul.
Je viens de mettre ceci en place: http://tech.cibul.org/geocode-with-google-maps-api-v3/ donc je viens de passer de 4 champs (pays, région/province, localité, adresse) à un seul champ: "lieu".


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2215
Inscription: 10 Avr 2005

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Sam Juin 05, 2010 10:50

Quelle est la pérennité du choix d'une telle solution ?
Totale dépendance de Google et son API.

Je ne sais pas dans quel contexte tu utilises cette fonctionnalité mais lorsque tu extraits le (pays, région/province, localité, adresse) sous quelle forme les stockes-tu par la suite dans ta base ?

Gères-tu des référentiels (liste de pays, régions, départements) lorsque l'on veut faire des recherches sur ton site ou naviguer par catégorie ?


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Sam Juin 05, 2010 17:07

dorian53 a écrit:Quelle est la pérennité du choix d'une telle solution ?
Totale dépendance de Google et son API.

Je ne sais pas dans quel contexte tu utilises cette fonctionnalité mais lorsque tu extraits le (pays, région/province, localité, adresse) sous quelle forme les stockes-tu par la suite dans ta base ?

Totale dépendance de l'API OK, mais par exemple si je prend les datas de Geonames, si ds qq temps je veux remettre ces datas à jour... personne ne px dire ce qui sera le plus pérenne. Quand même plus de chances avec Google que Geonames.

Pour le moment, juste les coordonnées GPS (latitude et longitude) et le code pays. A partir de ça j'extrais toutes les datas (reverse geocoding).

dorian53 a écrit:Gères-tu des référentiels (liste de pays, régions, départements) lorsque l'on veut faire des recherches sur ton site ou naviguer par catégorie ?

Encore rien, je suis tjs en train d'y réfléchir comment faire, d'où ce topic :wink:


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Sam Juin 05, 2010 20:39

la hiérarchie de la réponse est très différente selon les pays


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 10:19

Leonick a écrit:la hiérarchie de la réponse est très différente selon les pays

Oui mais elle respecte bien ceci:
country > administrative_area_level_1 > administrative_area_level_2 > administrative_area_level_3 > colloquial_area > locality > sublocality

non ?

Même si pour certains pays le administrative_area_level_2 est le même que administrative_area_level_3.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 12:12

regarde la différence entre http://maps.google.com/maps/geo?q=53.326157033345,-9.83928680419922 (en Ile de France) et http://maps.google.com/maps/geo?q=53.326157033345,-9.83928680419922 (en Irlande)
déjà, tu n'as pas de SubAdministrativeArea et il y a un certain nombre de changements, dont le LocalityName qui se retrouve un niveau plus haut dans l'arborescence. Donc quand on récupère les infos, l'information souhaitée peut se trouver à différents endroits


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 12:43

C'est 2 fois les mêmes latitude/longitude que tu montres ?

53.326157033345,-9.83928680419922
me retourne (json décodé en array et simplifié):
Code: Tout sélectionner
Array
(
    [locality] => Array
        (
            [long_name] => Carna
            [short_name] => Carna
        )

    [administrative_area_level_1] => Array
        (
            [long_name] => Galway
            [short_name] => Galway
        )

    [country] => Array
        (
            [long_name] => Irlande
            [short_name] => IE
        )

)



Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 13:00

spout a écrit:C'est 2 fois les mêmes latitude/longitude que tu montres ?

:oops: erreur de copier/coller
Donc en Ile de France http://maps.google.com/maps/geo?q=48.8296814609858,2.56316184997559


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 13:26

Pour 48.8296814609858,2.56316184997559:

Code: Tout sélectionner
Array
(
    [locality] => Array
        (
            [long_name] => Noisy-le-Grand
            [short_name] => Noisy-le-Grand
        )

    [administrative_area_level_2] => Array
        (
            [long_name] => Seine-Saint-Denis
            [short_name] => 93
        )

    [administrative_area_level_1] => Array
        (
            [long_name] => Ile-de-France
            [short_name] => IDF
        )

    [country] => Array
        (
            [long_name] => France
            [short_name] => FR
        )

    [postal_code] => Array
        (
            [long_name] => 93160
            [short_name] => 93160
        )

)


Donc oui c'est pas le même retour mais il me semble que ça respecte tjs bien la hierarchie que je cite ?

53.326157033345,-9.83928680419922: Irlande > Galway > Carna
48.8296814609858,2.56316184997559: France > Ile-de-France > Seine-Saint-Denis > Noisy-le-Grand


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 13:41

parce que dans ta "simplification" tu récupères les valeurs quels que soient leur position dans le fichier retour

Si on compare Paris http://maps.google.com/maps/geo?q=48.84563557663105,2.289420496961478 et Dublin http://maps.google.com/maps/geo?q=48.84563557663105,2.289420496961478
on voit que la ville, pour Dublin
Code: Tout sélectionner
"Country" : {
      "AdministrativeArea" : {
         "AdministrativeAreaName" : "Dublin",
         "Locality" : {
            "LocalityName" : "Dublin",
et pour Paris
Code: Tout sélectionner
"Country" : {
      "AdministrativeArea" : {
         "AdministrativeAreaName" : "Ile-de-France",
         "SubAdministrativeArea" : {
            "Locality" : {
               "LocalityName" : "Paris",
soit 1 niveau en dessous : ajout du niveau SubAdministrativeArea pour la France


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 13:52

J'utilise le Google Geocoding API:
http://code.google.com/intl/fr/apis/maps/documentation/geocoding/index.html#JSON
Code: Tout sélectionner
http://maps.google.com/maps/api/geocode/output?parameters


Et toi il me semble que tu me montres des exemples avec le service Geocoding de l'API Maps v2:
http://code.google.com/intl/fr/apis/maps/documentation/javascript/v2/s ... #Geocoding
Code: Tout sélectionner
http://maps.google.com/maps/geo?q=48.84563557663105,2.289420496961478


Les données JSON retournées ne sont pas les mêmes.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19592
Inscription: 8 Aoû 2004

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 17:35

le V2 est deprecated, c'est ça ?
et la version que tu utilises est la dernière, c'est bien ça ?


spout
WRInaute accro
WRInaute accro
 
Messages: 4377
Inscription: 14 Mai 2003

Re: Classement par pays/régions/provinces/communes - Google Geocoding API

Message le Dim Juin 06, 2010 18:40

- v2 dépréciée oui
- C'est bien la dernière version

D'ailleurs je ne vois plus la doc pour l'appel de l'API v2 en http, ça renvoie vers la doc de la nouvelle version:
http://code.google.com/intl/fr/apis/maps/documentation/javascript/v2/s ... ing_Direct

The Google Geocoding API has been significantly upgraded and enhanced. This document discusses this newest version of the Geocoding API (V3). Note that the legacy Geocoding API V2 has been deprecated. Users of that service should upgrade to this version.

Classement par pays/régions/provinces/communes - Google Geocoding API

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

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