RechercheV sur longitude et latitude

berga77

XLDnaute Nouveau
Bonsoir à tous,

Je dispose d'un tableau contenant les données suivantes:
Les 4 premières colonnes contiennent 36000 villes géolocalisées avec département.
Villes:département:Latitude:Longitude.

Les 4 colonnes suivantes contiennent 20000 Points d'Intérêt (PI) géolocalisés mais sans le département.
Nom:Code:Latitude:Longitude:

Je souhaiterai ajouter une nouvelle colonne (Dpt) pour situer chaque PI dans son département.

J'ai réussi avec RechercheV (sans préciser la valeur proche) pour la latitude OU la longitude,
mais je ne sais pas faire pour Long ET Lat.
D'autres approches ou solutions sont les bienvenues.

Ce fichier est utilisé dans Oziexplorer (logiciel de cartographie pour la
randonnée)pour afficher le PI sur la carte.

Je joins un extrait du fichier pour faciliter la résolution de ma demande.

Par avance, merci.

Bernard
 

Pièces jointes

  • BaseGéo.xls
    24.5 KB · Affichages: 268
C

Compte Supprimé 979

Guest
Re : RechercheV sur longitude et latitude

Bonsoir Berga77 et bienvenue sur ce forum

Je pense que ce que tu souhaites n'est pas réalisable en l'état
en effet comment dire à Excel que la longitude 44,7455343 est équivalent à 44,756 ??

Si tu as la réponse, nous aurons un début de solution ...

A+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : RechercheV sur longitude et latitude

Bonsoir et bienvenu Berga77,

Quelques précisions sont nécessaires.
Comment repérer dans une liste (Lat1,Long1) de communes, un couple particulier (Lat2,Long2) lié à un point d'intéret (PI) alors que:
1) aucune des deux valeurs (Lat2,Long2) ne peut figurer dans la liste (Lat1,Long1)
2) quand bien même, on calculerai une distance entre deux couples, rien ne dit que le PI appartient au département de la commune la plus proche ?
Un PI peut être plus proche d'une commune et de par le dessin des frontières communales se situer dans une autre commune. Et ceci est peut-être encore plus vrai pour les frontières de département.

Pour l'instant je ne vois pas de solution exacte au mieux des solutions approximatives.

Nb: Bonjour Bruno :)
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : RechercheV sur longitude et latitude

Bonsoir @ tous,
@ Bruno :
en effet comment dire à Excel que la longitude 44,7455343 est équivalent à 44,756 ??
Oui peut dire a Excel si la valeur X est plus proche a Y renvoie moi Y et si X est plus proche a Z renvoie moi Z.

@ Bernard :
Vous avez raison,le problème est plus compliqué que j'imaginais.Je cherche une autre piste.
Tout est possible et sur le forum, moi de ma part je fais confiance aux membres de forum.
si tu peux etre plus claire que ca, soit sur que tu trouveras ton Bonheur.
sur ton fichier essayer de completer la nouvelle colonne Dept manuellement comme ce que tu as fait pour le 33, et on va essayer de te donner la reponse.
Amicalement
 

Modeste geedee

XLDnaute Barbatruc
Re : RechercheV sur longitude et latitude

Bonsour®
  • les coordonnées d'une ville ne sont pas les coordonnées d'un département.
  • les formes de département ne sont pas géometriquement régulière.

rien ne permet donc de situer un point dans le périmetre d'un département.
sauf si ce point correspond aux coordonnées d'une ville de ce département

désolé...
une solution serait de faire un lien hyperlink vers google maps avec les lat et long
ça je sais faire...

il faudrait ensuite pouvoir récuperer les infos géographiquse dans les renseignements affichés dans la page html..
à suivre...
 

bebeours

XLDnaute Nouveau
Re : RechercheV sur longitude et latitude

Bonjour, c'est le premier message que j'ecris dans ce forum.

Alors, il existe comme solution mappoint de microsoft. C'est un programme d'itinéraire un peu plus costaud. Il prend en charge les fichiers excel et pose des drapeaux partout sur la carte. Ensuite, il peut sans difficulté faire le travail dans l'autre sens et redonner un fichier excel selon ce qu'on lui a demandé. On peut sélectionner une zone sur la carte, on peut croiser d'autres données et les comparer. On peut faire des cartes avec de jolies couleurs,... Et donc, comme je le signalais, on peut exporter les données par région, département, ville,...

C'est t'y pas super. Excellent logiciel pour voir les concentrations de prospects ou autres.

Bye
 
C

Compte Supprimé 979

Guest
Re : RechercheV sur longitude et latitude

Bonjour le fil
Bonsoir @ tous,
@ Bruno :
Oui peut dire a Excel si la valeur X est plus proche a Y renvoie moi Y et si X est plus proche a Z renvoie moi Z.
Ok Rachid-0661, mais à part causer pour ne rien faire ... tu nous la sors la formule magique ?

Ce que demande Berga77 c'est une solution, que je n'ai pas ;)

A+
 

R@chid

XLDnaute Barbatruc
Re : RechercheV sur longitude et latitude

Salut @ tous,
@ Bruno :
Ok Rachid-0661, mais à part causer pour ne rien faire ... tu nous la sors la formule magique ?
Oui je peux le faire mon ami avec une tres petite formule,
disons qu'on a une liste comme :
-15
-08
+01
+05
+09
+15
+16
+35
+47
et une cellule critere, ou on tape les valeurs a chercher, et on veut par exemple si je tape 21 comme valeur a chercher, me renvoie la valeur la plus proche ==> 16, et si je tape 27 elle me renvoie ==> 35 puisque c'est la plus proche.
C'est possible, mais peut etre sur une autre discussion, du fait que,
C'est t'y pas super. Excellent logiciel pour voir les concentrations de prospects ou autres.
Amicalement
 
Dernière édition:

berga77

XLDnaute Nouveau
Re : RechercheV sur longitude et latitude

Bonjour,

A bebeours,

Je ne connaissais pas ce soft. Je préfère privilégier excel mais si c'est impossible,
je me tournerai vers ta solution.

A BrunoM45,
Je persiste encore un peu avec rechercheV , mais pour l'instant , mes résultats sont fantaisistes.

A Modeste,
Il y a un tuto sur developpez.com qui explique comment dessiner une carte de france + département
en récupérant des données d'un fichier vectorisé .C'est une bonne piste mais c'est technique.

Merci
A+
 

Modeste geedee

XLDnaute Barbatruc
Re : RechercheV sur longitude et latitude

Bonsour®
Je dispose d'un tableau contenant les données suivantes:
Les 4 premières colonnes contiennent 36000 villes géolocalisées avec département.
Villes:département:Latitude:Longitude.

Les 4 colonnes suivantes contiennent 20000 Points d'Intérêt (PI) géolocalisés mais sans le département.
Nom:Code:Latitude:Longitude

Ce fichier est utilisé ...//...pour afficher le PI sur la carte.

sourire...
alors peut-etre :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("e1:h20000")) Is Nothing Then
    Dim oIE As Object, x As String
    x = Application.Substitute(Cells(ActiveCell.Row, 7) & " + " & Cells(ActiveCell.Row, 8), ",", ".")
    'x = Cells(ActiveCell.Row, 5) ' --- ????-----plusieures localisations possibles
     MsgBox "Il faudra fermer la fenetre IE pour retour", vbInformation
     Set oIE = CreateObject("InternetExplorer.Application")
     oIE.Navigate "http://maps.google.fr/maps?q=" & x
    oIE.Visible = 2
    End If
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : RechercheV sur longitude et latitude

Bonsoir berga77,

Une variation autour du thème de la discussion. Le fichier joint est juste une piste. Il ne résoud pas le problème du choix du département; il le restreint seulement.

1) La base de données des coordonnées des communes de France a été téléchargée sur le site: http://www.lion1906.com/ de Lionel Delvarre.
2) Cliquer sur une ligne du tableau des points d'intéret (PI) transfère le PI dans la zone de traitement "O2:R2" pour être utilisé comme PI de référence.
3) Une zone qu'on peut modifier 'Filtre Coord' pour restreindre le calcul existe en O5. Elle restreint le calcul de la distance à un carré de deux fois nn kilomètres autour du PI.
4) Une zone (en P5) qu'on peut modifier 'Filtre résultat' permet de n'afficher que les communes à moins de xx kilomètres du PI.
5) Le bouton calculer lance les calculs.
6) Le résultat est en colonne F. Seuls les départements en face des distances affichées sont à considérer.

On pourrait imaginer ensuite une règle de choix comme prendre les N communes les plus proches et calculer la fréquence des départements associés; la fréquence de département la plus grande pourrait correspondre au département d'appartenance. Mais sans certitude d'avoir le bon département!

Le fichier étant trop volumineux ( plus de 36000 communes), il est téléchargeable sur le site cjoint.com. Voir le message #20

NB: Je ne vois pas comment on pourrait facilement à partir d'un point (x,y) décider si il appartient ou non à une surface sachant que la description de la surface d'un département ça doit être coton! (et biscornue). Mais des spécialistes en topologie fréquentent peut-être ce site.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : RechercheV sur longitude et latitude

Bonjour à tous


Je partage l'avis général sur la difficulté de lier un point repéré par ses coordonnées à un département.
J'ai essayé autre chose : associer chaque point d'intérêt à la ville la plus proche et calculer approximativement la distance en km les séparant.
J'obtiens le code suivant :
VB:
Sub proche()
Const P# = 3.14159265358978, P2# = 1.5707963267949, Pid# = 1.74532925199433E-02
Dim U&, V&, i&, j&, k&, L#, M#, D#, C#, S#, Ref(), Pos(), Trg#(), Equ()
    Ref = Range(Cells(2, 1), Cells(Cells(1, 1).End(xlDown).Row, 7)).Value
    Pos = Range(Cells(2, 7), Cells(Cells(1, 5).End(xlDown).Row, 8)).Value
    U = UBound(Ref)
    V = UBound(Pos)
    ReDim Trg(1 To U, 2)
    ReDim Equ(1 To V, 2)
    For i = 1 To U
        Trg(i, 0) = Ref(i, 4) * Pid
        Trg(i, 1) = Cos(Ref(i, 3) * Pid)
        Trg(i, 2) = Sin(Ref(i, 3) * Pid)
    Next
    For i = 1 To V
        k = 0
        M = 0
        L = Pos(i, 2) * Pid
        C = Cos(Pos(i, 1) * Pid)
        S = Sin(Pos(i, 1) * Pid)
        For j = 1 To U
            D = C * Trg(j, 1) * Cos(L - Trg(j, 0)) + S * Trg(j, 2)
            If Abs(D) = 1 Then D = (Sgn(D) - 1) * P Else D = Atn(-D / Sqr(1 - D * D))
            If D < M Then M = D: k = j
        Next
        Equ(i, 0) = Ref(k, 2)
        Equ(i, 1) = Ref(k, 1)
        Equ(i, 2) = Round(6371 * (M + P2), 1)
    Next
    Range(Cells(2, 9), Cells(Cells(1, 5).End(xlDown).Row, 11)).Value = Equ
End Sub

Ça m'a l'air de fonctionner (au moins sur l'échantillon fourni), mais la procédure est relativement lente (~50s par millier de points d'intérêt sur une base 36000 villes).

Voyez si ça fait avancer la question...​


ROGER2327
#5729


Mercredi 11 Clinamen 139 (Saint Maquereau, Intercesseur - fête Suprême Quarte)
13 Germinal An CCXX, 0,1594h - morille
2012-W14-1T00:22:57Z
 

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94