IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Géocoder des adresses postales [Sources]


Sujet :

Contribuez

  1. #21
    Invité
    Invité(e)
    Par défaut Merci
    Excellent, ca va me permettre d'adapter mon code!

    Merci encore !

  2. #22
    Invité
    Invité(e)
    Par défaut Extraction XML d'un type spécifique..
    Petite question Philippe:

    Si je veux extraire l'information XML de Google..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <address_component>
    <long_name>Montréal</long_name>
    <short_name>Montréal</short_name>
    <type>administrative_area_level_2</type>
    ..avec ".selectSingleNode", comment je peux spécifier le TYPE recherché?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Commune
    ... Val(.selectSingleNode("//address_component//long_name").Text)
    Étant donné que la plupart des résultats possèdent les atrributs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <address_component>
    <long_name></long_name>
    Merci à l'avance,

    Jonathan

  3. #23
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    une solution consiste à utiliser une expression XPath pour rechercher l'information (référence ici) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Not .selectSingleNode("//address_component[type = 'administrative_area_level_2']") Is Nothing Then
        Debug.Print .selectSingleNode("//address_component[type = 'administrative_area_level_2']/long_name").Text
    End If
    bonne continuation,

    Philippe

  4. #24
    Futur Membre du Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Points : 6
    Points
    6
    Par défaut demande d'aide
    Bonjour,

    Quelqu'un pourrait me dire comment faire pour mettre ce projet en place ??
    Existe-t-il une base exemple en téléchargement ?
    Quelqu'un pourrait mettre une base exemple ici ?

    Merci de vos réponses, à bientôt Jean-Yves

  5. #25
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut
    Je suis partant aussi pour avoir une base exemple.

    Je cherche à pouvoir visualiser sur une carte google un ensemble d'adresse en fonction d'un sous-ensemble choisi.

    Exemple : Dans ma catégorie 1, j'ai 15 adresses, dans ma catégorie 2, j'ai 27 adresses,...
    Si je choisis la catégorie 1, je peux voir sur la carte où sont situées les 15 adresses, idem si je choisis la catégorie 2.
    Et si je choisis les 2 catégories, je vois donc les 42 adresses sur la carte.

    Merci par avance.

  6. #26
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,




    Vous trouverez ici une petite base exemple au format .mdb:
    • En double-cliquant sur une catégorie, on affiche tous les points de cette catégorie.
    • En double-cliquant sur un nom, on affiche le point correspondant.
    • Attention : Base créée avec Access 2010, vérifier les références VBA en cas de problème...
    Quelques images :






    Bonne continuation

    Philippe

  7. #27
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Salut,

    Y-a pas à dire "ça en jette" comme on dit
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Super sympa. . Ca me trotte dans la tête depuis un bout de temps.
    Le géocodage envahit tout et je crois que je vais m'y mettre. Avec tous ces exemples je devrais m'en sortir.
    Merci.

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Ça y est, j'ai intégré le code de philben à ma base de donnée. Je n'ai pas résisté longtemps de jouer avec. Ma base a environ 2300 adresses dans le monde entier.

    Quelques remarques suite à mon utilisation:

    - Pour qu'il s'y retrouve avec les DOM j'ai substitué le nom du pays par le nom du département DOM:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sPays = IIf(!DEPARTEMENT >= 96, OteAccents(!Nom_Departement), !LIBCOG) 'correctif DOM-TOM
    sDep = IIf(!DEPARTEMENT >= 96, "", OteAccents(!Nom_Departement)) 'correctif DOM-TOM
    tGeo = PostalToGeoViaGM(OteAccents(!ADRESSE), OteAccents(!CP), OteAccents(!VILLE), sDep, sPays)
    - Il n'y a plus d'erreur farfelue lorsque l'on précise le nom du département. En effet le géocodage ne semble pas très sensible au code postal. Google peut donc géocoder en dehors du département sur un lieu-dit de l'adresse.

    - Suppression des caractères dans l'adresse qui le rend inefficace (pas encore implémenté) ou qui génère des erreurs comme: ° " . , & - etc.. Par exemple avec le tiret dans l'adresse, le géocodage a situé le POI aux US alors que sans le tiret le POI était en France. Remarque c'était avant que je ne précise le nom du département lors des géocodage. Je n'ai pas fait d'essai tiret dans l'adresse et nom du département.

    - Suppression de caractères spéciaux dans pour le libellé d'un POI sur la carte: VbCr etc...

    - J'ai modifié pour que si le statut du géocodage est ZERO_RESULTS alors il fait un géocodage sans l'adresse puis sans le code postal puis sans la ville. Je stocke dans un champ le niveau de recherche qui a permis le géocodage.

    Par la suite je vais agrémenter les POI de quelques infos supplémentaires (No Tel,...). Sans doute export pour TomTom. Changer la couleur suivant la précision du géocodage et/ou le niveau de recherche qu'il a fallut pour géocoder.
    Et je vais jeter un oeuil à l'API v3 de google.

  10. #30
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    ronpub,

    merci de nous avoir fait part de ton expérience sur le géocodage

    amicalement,

    philippe

  11. #31
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Merci beaucoup Philben de nous faire découvrir la géolocasation.
    Comme dit p^lus haut ça en jette et on peut en faire des applications utiles.

    Une question : peut-on afficher la carte avec un zoom défini à l'ouverture ?
    (typiquement pour afficher des chantiers sur un département, par exemple) au lieu de toute la France

    encore
    "Always look at the bright side of life." Monty Python.

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    En ce qui concerne le zoom, je peux répondre partiellement.
    J'ai débuté un nouveau fichier html pour l'API v3 de google qui diffère donc de celui de philben. Cf PJ. Je fais du javascript tout les 3-4 ans et en toute petite quantité donc j'oublie tout entre temps.

    Ce qui diffère:
    - je ne maitrise pas encore l'effacage des Overlays donc je ne l'ai pas intégré (mis en commentaire).
    - Ca met des puces jaunes pour l'instant car je vais ajouter la couleur comme parametre. Mais on peut en changer en changeant le codage RVB à la fin de la ligne 13
    - Ce code créé et étend un "bound" (limite) à tout les "marker" affichés. Il faut ensuite appeller fitMarkers() une fois que l'on a afficher toutes les marques par displayMark(lat,lon,msg). Si on modifie l'affichage (fitBounds) à chaque displayMark, cela ralentie considérablement les performances (testé avec des centaines de marques - ca n'a pas utilisable mais ca donne une vision d'ensemble). Pour appeller displayMark il faut modifier le code de la fonction du formulaire Carte Afficher(ByVal strSQL As String):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
       With oRs
          If Not .EOF Then
             Do Until .EOF
                'Affiche le point sur la carte
                displayPoint !cLatitude, !cLongitude, _
                    Replace(Nz(!Contact), Chr(34), "'") & " / " & !VILLE
                .MoveNext
             Loop
             fitMarkers 'ajout de la fonction pour zoom ajusté
             Afficher = True
          End If
          .Close
       End With
    et ajouter la fonction suivante dans le formulaire carte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'Ajuste la taille de la carte
    Private Sub fitMarkers()
       Me.WebBrowser.Object.Document.parentWindow.execScript "fitMarkers()", "JScript"
    End Sub
    Il suffira de remplacer le fichier Geocodage.html par Geocodage3.html joint.
    Fichiers attachés Fichiers attachés

  13. #33
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Nouvelle version du fichier html. Cette fois-ci j'ai implémenter la fonction clearMap().

    Par j'ai un gros doute pour la réinitialisation de mon LatLngBounds. Je n'ai pas trouvé de méthode réinitialisant l'object, j'en ai donc fait en autre dans la fonction clearMap():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oBounds = new google.maps.LatLngBounds();
    Ça fonctionne mais est-ce correct? Quelqu'un s'y connait en javascipt?

    Prochaine étape les clusters de Marker ensuite les couleurs. Enfin bon si j'ai le temps car ça n'est pas du tout une priorité. Et dire que je me penche là dessus alors que j'ai des projets sérieusement en retard...
    Fichiers attachés Fichiers attachés

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Bon, j'ai ajouté les clusters dans le fichier html. Cf image de l'Allemagne.

    Ça fonctionne mais je ne suis pas du tout sure de la gestions des objets. De leur effacement et de leur initialisation. Je n'y connais pas grand chose et je crains que le code soit pourri.
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  15. #35
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Merci Ronpub
    Tu réponds bien à ma question et déjà ça marche (en adaptant légèrement ton code pour l'original de Philben (!cLatitude pour !seLatitude ... )
    Reste à déterminer pourquoi il y a des ronds bleus au lieu d'étiquette jaunes pour certains points ...
    Bref je vais aussi regarder cela de mon côté ... mais c'est super !
    "Always look at the bright side of life." Monty Python.

  16. #36
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Les ronds bleus, c'est la mise en cluster des markers lorsqu'ils sont trop proches les uns des autres:
    http://code.google.com/intl/fr/apis/...mogallery.html
    exemple " Too Many Markers "

    Tu peux enlever cette fonction en mettant en commentaire la ligne 56 du fichier html du post #34 :
    //vmarkerCluster = new MarkerClusterer(oMap, oMarkersArray, omcOptions);

  17. #37
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    j'ai modifié ici le code de la page html pour passer en API v3 de GM + quelques corrections dans le code VBA.


    Quelques remarques :
    • Base Access recompilée avec Access 2003
    • Plus d'affichage d'InfoWindow en cliquant sur un marqueur mais seulement d'une info bulle en passant la souris sur le marqueur
    • Pour info, l'en-tête du fichier html contient la ligne
      <!-- saved from url=(0016)http://localhost -->
      qui permet de passer la sécurité d'Access 2010 sinon rien ne s'affiche !
    • Viewport ajuster automatiquement selon la position des marqueurs
    • On a droit à 2500 géocodages/j avec la v3, voir <Usage Limits>
    ronpub, micniv

    merci de votre participation active. La discussion, certe intéressante, dévie vers l'utilisation de tierce-parties javascript qui a plus sa place dans le forum correspondant.

    Cordialement,

    Philippe

  18. #38
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Une information pour ceux qui utilisent Access 2000 et antérieur, l'activeX du navigateur n'est pas redimensionable à postériori. Il faut le définir à la taille désirée à son insertion dans le formulaire:
    http://support.microsoft.com/kb/161397

    Ainsi j'ai effacé et réinséré le contrôle "Microsoft Web Browser" à la dimension souhaitée (approximativement 7cm x 3cm par défaut c'est petit) et je l'ai nommé "WebBrowser". C'est tout de même mieux pour les postes qui tournent avec Access 2000.

  19. #39
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Bonjour ronpub,

    Avec Access 2000, le web control est redimensionnable si on le place dans un control form2-frame.

    Voir la discussion .

    bonne continuation,

    Philippe

  20. #40
    Membre à l'essai
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : retraité
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Bonjour Philben

    bravo pour ton appli;

    mais j'aimerais savoir si une fonction inverse à PostalToGeoViaGM est faisable
    (trouver l'adresse à partir des latitude et longitude).
    Je n'arrive pas à trouver le code malgré pas mal de recherche.

    merci pour la reponse

    jmaulin

Discussions similaires

  1. Géocoder des adresses postales "Suite"
    Par Shades dans le forum IHM
    Réponses: 3
    Dernier message: 16/04/2012, 19h53
  2. [Google Maps] géocoder une adresse postale
    Par nebil dans le forum APIs Google
    Réponses: 9
    Dernier message: 24/11/2011, 12h07
  3. [PHP 5.2] Localiser des adresses postales sur une carte
    Par arthuro45 dans le forum Langage
    Réponses: 3
    Dernier message: 30/08/2010, 15h29
  4. Réponses: 3
    Dernier message: 12/01/2006, 13h27
  5. [VBA][outlook] récupération des adresses mail
    Par arno2004 dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 27/07/2004, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo