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

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par spout, 4 Juin 2010.

  1. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    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:
    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.
     
  2. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    1
    Re: Classement par pays/régions/provinces/communes

    Salut,

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

    Code:
    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:
    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)
    ou
     
  3. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    Re: Classement par pays/régions/provinces/communes

    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".
     
  4. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    1
    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 ?
     
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    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).

    Encore rien, je suis tjs en train d'y réfléchir comment faire, d'où ce topic :wink:
     
  6. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    la hiérarchie de la réponse est très différente selon les pays
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    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.
     
  8. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
  9. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    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:
    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
            )
    
    )
    
    
     
  10. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
  11. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    Pour 48.8296814609858,2.56316184997559:

    Code:
    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
     
  12. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    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:
    "Country" : {
          "AdministrativeArea" : {
             "AdministrativeAreaName" : "Dublin",
             "Locality" : {
                "LocalityName" : "Dublin",
    
    et pour Paris
    Code:
    "Country" : {
          "AdministrativeArea" : {
             "AdministrativeAreaName" : "Ile-de-France",
             "SubAdministrativeArea" : {
                "Locality" : {
                   "LocalityName" : "Paris",
    
    soit 1 niveau en dessous : ajout du niveau SubAdministrativeArea pour la France
     
  13. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
  14. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    le V2 est deprecated, c'est ça ?
    et la version que tu utilises est la dernière, c'est bien ça ?
     
  15. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    - 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

     
  16. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    bon, ben je n'ai plus qu'à passer en nouvelle version
    Merci
     
  17. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    Bon boulot et l'API Maps v3 aussi elle est super (bcp plus simple, cfr l'exemple d'auto complete)
     
  18. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    Pas d'autres idées/pistes pour le classement par régions ?
     
  19. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    1
    Également dans l'attente.
     
  20. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    Toujours pas d'idées pour la solution ultime ?

    C'est très compliqué d'enregistrer la "hiérarchie" afin de pouvoir la réutiliser pour filtrer des résultats, et je n'ai toujours pas trouvé comment je pourrais faire.

    Pour le moment je pense enregistrer (sans hiérarchie):
    - Soit tout le retour JSON de l'API
    - Soit dans une autre table de type clef/valeur, pour y enregistrer ces infos:
    Code:
    country
    administrative_area_level_1
    administrative_area_level_2
    administrative_area_level_3
    colloquial_area
    locality
    sublocality
    postal_code
    
    Si ça intéresse des gens, j'ai fait une petite classe pour y extraire les "GeocodingAddressTypes" à partir du retour JSON (le retour étant assez complexe à traiter):
    http://pastebin.com/bgSNj5Mz
     
  21. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    1

    Je me suis contenté de ça.
    Code:
    country > administrative_area_level_1 > administrative_area_level_2 > administrative_area_level_3 >  locality
    Sans colloquial_area et sublocality, est-ce que je risque d'avoir des soucis ?
    As-tu des exemples ?

    Ca je pense pouvoir faire sans.

    Ici je ne vois pas ce que cela représente.
     
  22. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    J'ai des exemples en Belgique où la "locality" c'est la commune, et le "sublocality" l'ancienne commune.
    J'utilise ceci:
    Code:
    country > administrative_area_level_1 > administrative_area_level_2 > administrative_area_level_3 > colloquial_area > locality > sublocality
     
  23. dorian53
    dorian53 WRInaute passionné
    Inscrit:
    10 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    1
    Quel est l'intérêt alors de travailler avec l'ancienne commune ?
     
  24. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    C'est pour mon petit patelin, l'ancienne commune est tjs un nom de village qui existe et c'est le village le plus proche connu par Google Maps (et d'autres trucs: GPS, ...).
    Il faut que tu fasses des tests avec une liste d'adresses :wink:
     
  25. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 181
    J'aime reçus:
    351
    Un ptit UP pour donner une piste envisageable:

    J'ai testé, l'import de données dans MySQL est plutôt simple et faisable avec une tâche CRON.
    http://forum.geonames.org/gforum/posts/list/15/80.page#4570

    Il n'y a pas besoin d'importer le allCountries.txt, simplement les pays nécessaires, testé avec BE.txt
    Une fois les données importées c'est possible de connaitre la hiérarchie via les "features codes":
    http://www.geonames.org/export/codes.html
     
Chargement...
Similar Threads - Classement pays régions Forum Date
Déclassement sur requêtes et pays spécifiques? Crawl et indexation Google, sitemaps 11 Janvier 2020
Classement Google selon la langue/le pays Référencement Google 28 Mars 2009
Déclassement de pages, EAT ou Penguin Netlinking, backlinks, liens et redirections 3 Mai 2022
WordPress classement de mon site Débuter en référencement 1 Décembre 2021
Adsense plus strict avec le classement en contenu adulte ? AdSense 6 Juillet 2021
Baisse brutale du classement de mon site sur plusieurs mots-clés Problèmes de référencement spécifiques à vos sites 30 Mars 2020
Multi-classement des produits e-commerce 22 Octobre 2019
Perte brutale du classement : https en cause ? Problèmes de référencement spécifiques à vos sites 14 Mai 2019
Critère de classement régional Google trends YouTube, Google Images et Google Maps 14 Juin 2018
Impact du PageRank sur le classement Google Débuter en référencement 31 Mai 2018
Classement GG <-> Nombre de pages indexées Débuter en référencement 5 Mai 2018
Difference de classement google selon le support Référencement Google 7 Avril 2018
Type de classement sur youtube YouTube, Google Images et Google Maps 25 Novembre 2017
Mon classement Google a chuté Problèmes de référencement spécifiques à vos sites 6 Février 2017
Evolution dans le classement google Problèmes de référencement spécifiques à vos sites 10 Décembre 2016
Référencement sur Google News / Déclassement sur Google Référencement Google 8 Juin 2016
Grosse différence entre classement BING/QWANT et GOOGLE Problèmes de référencement spécifiques à vos sites 20 Mai 2016
Classement des hôtels dans Google hotel finder Référencement Google 19 Avril 2016
requete Mysql et classement des résultats Administration d'un site Web 1 Novembre 2015
Soucis de classement ou incompréhension Problèmes de référencement spécifiques à vos sites 29 Octobre 2015