Page 1 sur 2

ville aux alentours d'un point X

Posté : 29 sept. 2009, 10:17
par bobmeers
bonjour
auriez-vous dans vos archives un truc tout cuit en Php? car js pas toujours activé chez les utilisateurs,simplement pour pas me casser la tête si cela existe.
j'explique :j'ai un fichier code postaux qui contient la longitude et la latitude de chaque commune (grace à un logiciel trouvé sur le net qui récupère ces données sur google earth)
partant d'une commune je cherche toutes les communes dans un rayon de X km çà c'est le problème
ma solution, donc pas forcément la meilleure : en théorie et sans vraiment savoir comment faire pour switcher de longitude à lattitude dans mon cercle.
connaissant la longueur d'un meridien et la formule de la circonfèrence du cercle, je trace un cerle de X (donc un certain nombre de degré) autour de mon point de référence Long, lati
il ne me reste plus qu'a couper des tranches, centieme de degre par centieme de degré lattitude et de voir si la longitude est comprise dans les limite de longitude de mon cercle,' de chainer sur mon fichier code postaux et de voir si il y a une commune à ce point précis , facile hein
n'empeche que si il y a du 'plat à emporter' en la matière je mettrais mon orgueil de fin cuisinier de coté et me contenterai volontier d'une copie"fast food" ;-)
car je ne connais pas encore la longueur exacte d'un méridien et quant à la formule de la circonfèrence ouille çà date, donc quelques petites recherches s'imposent. je me souviens vaguement qu'il etait question de "pierre carrée"

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 11:52
par sylvaing26
Euh ... et pourquoi pas tout simplement regarder par rapport au numero des codes postaux ?
Parce que si tu veux les calculs, regarde du coté "comment calculer avec les données polaires et cartesiennes" et sincerement je voi pas comment tu ferai pour integrer ca en PHP ...

Les codes postaux sont similaires lorsque la commune est proche
72 250, 72 200 ... rien que là à tous hasard je suis quasiment certain que ces communes sont pas trop éloignées

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 12:00
par bobmeers
bonjour sylvaing26
Merci de l'interet que tu porte à ma question
en principe tu a raison les codes postaux sont sencé donné cela comme resultat
comment avec les codes postaux voir qu'ils sont voisins entre belgique et nord de la france, ou de l'allemagne ?
il y a des 9000 en region d'antwerpen 2000
certains code postaux correspondent à 17 communes alors la proximité ?
bref il ne reste qu'a mettre une formule en oeuvre je pense , but de ma question donc

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 12:05
par sylvaing26
Parce que c'est au niveau mondial ton truc ?
Tu vas nous refaire le site de mappy en gros ? :lol:

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 12:21
par bobmeers
pas mappy non, mais il s'agit d'un site international en effet , multilingue, et 100 dynamique en PHP
il me faut mettre en relation acheteurs et vendeurs d'une une même région en relation
la distance acceptable les séparant est à déterminer par l'usager en fonctions de ses propres critères
la relation de proximité est dés lors indispensable , dur la vie

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 12:41
par sylvaing26
Coordonnée cartesiennes ou polaires ?
Pour moi les coordonnées cartesiennes c ce qui serai le plus simple ...
Au lieu de chercher dans un cercle du cherche dans un rectangle

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 13:36
par bobmeers
hello
évidement c'est plus simple le rectangle
néanmoins pour trouver un vendeur à 10KM de chez moi le cercle et surtout le rayon reste le moyen le plus efficace
tes suggestions restent bien sur les bienvenues mais la question etait précises je pense
une suggestion pourrait aussi etre de simplement laisser tomber cette idée foireuse

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 13:47
par sylvaing26
As tu de bonnes notions en géodesie et en PHP ?
Sinon cela risque d'etre très très dur en effet

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 14:39
par zeus
C'est assez simple en fait. Si tu dispose des coordonnées cartésiennes, tu as une hauteur et une largeur.
Prenons un exemple :
Image

Dans cet exemple, tu as 2 villes : A et B. Ces 2 villes disposes de coordonnées cartésiennes : A(3,5) et B(11,7).
Pour connaitre la distance entre les 2, il suffit de créer un triangle rectangle entre les 2 villes, puis de calculer la taille de l'hypoténuse (H) de ce triangle.

En effet, nous connaissons la taille de chaque côté de part et d'autre de l'angle droit (C1 et C2), en faisant la différence entre les coordonnées selon un axe :
C1 = 7-3 = 4 (la lattitude)
C2 = 11-5 = 6 (la longitude)

Et, en se basant sur le théorème de Pythagore, on sait que la taille de l'hypoténuse au carré et égale à la somme des 2 autres côtés au carrés. Rapporté au schéma, ce qui nous donne H² = C1² + C2², ou encore H = rac(C1² + C2²)

Dans notre exemple, en appliquant cette formule, on obtient :
H = rac(4² + 6²) = rac(52) = 7.2.
Du coup, on sais que la distance entre le point A et le point B est de 7.2.

Et, au final, à partir d'un calcul simple, tu peux savoir quelles sont les villes les plus proches d'un point donnés.

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 14:54
par stopher
Il faut d'abord projeter les coordonnées en surface plane ,

il y a de la doc la dessus sur le site de l'ign .

http://education.ign.fr/DISPLAY/000/527 ... ctions.pdf

Edit :

J'ai trouvé ceci sur un autre site , je cite :
1- mettre les angles en radian ( 1deg = Pi/180 rad )
2- considerer la terre comme une shère de rayon R ( 6'400 km environ )
3- les points sur terre répondent alors à x^2 + y^2 + z^2 = R^2 <0>

la latitue lat ( en radian ) donne

Z = R * sin (lat) <1>

ce qui implique une fois reporté dans <0>

X^2 + Y^2 = R^2*cos(lat)^2

compte tenu de la longiture long ( exprimée en rad ) il vient

X = R * cos(lat) * cos(long) et Y = R*cos(lat) * sin(long) <3>

1 & 3 donnent les coordonnées carartésiennes du point.

si 2 points sont proches on peut dire que la distance à parcourir pour aller de l'1 à l'autre est de distance entre les 2 points. Si non il faut aller de l'1 à l'autre en suivant l'arc de grand cercle ( cercle de centre le centre de la terre et qui passe par les 2 points en question ) et calculer sa longueur.

L = R * Theta ( Theta angle en rad <Point1, Centre terre, Point2> )
sin ( Theta ) = (Op1 vect Op2) / R^2 où Vect = produit vectoriel
O le centre de la terre Op1 et Op2 les 2 vecteurs.
Prendre les valeurs abolues si sin() < 0. S'assurer de prendre le + court des 2 arcs reliant P1 à P2. Choix corrects dans arcsin.



Sujet intéressant .

Good luck ,
Ch.

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 15:09
par zeus
Très sincèrement, je doute qu'il faille prendre en compte le fait que la terre n'est pas plate. A moins de calculer la distance entre Singapour et Rio, je pense que l'on peut volontairement mettre de côté le relief.

Ceci dit, cela n'engage que moi ;)

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 17:37
par bobmeers
voila de très bonnes pistes , on est loin du truc tout cuit en PHP, mais bon , il n'y a plus qu'a mijoter tout cela
je reste néamoins preneur d'un bon code source même à bidouillé un peu
ce point de mon site n'est pas vraiment encore prioritaire j'ai encore pas mal de formulaires à terminé avant, donc ce problème trouvera peut etre une solution dans les semaines qui suivent

avis à toutes les ames de bonnes volonté donc .

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 17:47
par sylvaing26
Nous sommes là pour aider à developper et pas pour faire les codes tout pret.
A toi de te lancer avant tu as deja de bonnes pistes

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 18:02
par FuZZyLine
voila de très bonnes pistes , on est loin du truc tout cuit en PHP, mais bon , il n'y a plus qu'a mijoter tout cela
je reste néamoins preneur d'un bon code source même à bidouillé un peu
ce point de mon site n'est pas vraiment encore prioritaire j'ai encore pas mal de formulaires à terminé avant, donc ce problème trouvera peut etre une solution dans les semaines qui suivent
avis à toutes les ames de bonnes volonté donc .
Un truc tout cuit on appel ca une "Prestation" et ca a un cout... sans vouloir être désagrable...

Bref, @+ et désolé pour le HS.

Re: ville aux alentours d'un point X

Posté : 29 sept. 2009, 18:10
par Dr@ke
Sinon tu as la section: "Projets collaboratifs, entraide, bénévolat,... "