Design pattern: "distances sur GG Maps"

Consultez la formation Google Maps, News, Images de WebRankInfo / Ranking Metrics

bucheron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Juin 16, 2006 19:34

Design pattern: "distances sur GG Maps"

Message le Jeu Sep 25, 2008 12:36

Bonjour à tous,

je suis en train de développer un projet qui va utiliser google map.
J'utilise une base de données d'annonces. chaque annonce est géolocalisé par longitude/latitude.
Je souhaite chercher en fonction d'un endroit les annonces qui sont dans un périmètres de X km (X étant une variable).

Quel est selon vous le design pattern le mieux adapté ?
Connaissez vous un articles ou tuto qui traite de cette problématique ?

D'avance merci


spout
WRInaute accro
WRInaute accro
 
Messages: 1320
Inscription: Mer Mai 14, 2003 11:05

Message le Jeu Sep 25, 2008 16:09

Peut-être en se tournant vers cette fonction PHP:
Code: Tout sélectionner
function getGPSDistance($long1, $lat1, $long2, $lat2)
{
   $earth_radius = 6367000;   // Terre = sphère de 6367km de rayon
   $rlo1 = deg2rad($long1);
   $rla1 = deg2rad($lat1);
   $rlo2 = deg2rad($long2);
   $rla2 = deg2rad($lat2);

   $dlo = ($rlo2 - $rlo1) / 2;
   $dla = ($rla2 - $rla1) / 2;
   $a = (sin($dla) * sin($dla)) + cos($rla1) * cos($rla2) * (sin($dlo) * sin($dlo));
   $d = 2 * atan2(sqrt($a), sqrt(1 - $a));

   return ($earth_radius * $d);
}

bucheron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Juin 16, 2006 19:34

Message le Jeu Sep 25, 2008 16:17

est ce qu'il serait possible de le tourner autrement.

En prenant une longitude et latitude de référence, il faudrait pouvoir récupérer une plage de longitude/latitude en fonction d'une distance.

Car la fonction m'oblige à effectuer une requete pour chaque entrée dans ma base.


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12390
Inscription: Dim Aoû 08, 2004 20:24

Message le Ven Sep 26, 2008 21:32

bucheron a écrit:est ce qu'il serait possible de le tourner autrement.

En prenant une longitude et latitude de référence, il faudrait pouvoir récupérer une plage de longitude/latitude en fonction d'une distance.

Car la fonction m'oblige à effectuer une requete pour chaque entrée dans ma base.
ben non, car une distance a un point est représentée par un cercle. Je te laisse alors imaginer le nombre de couples longitude/latitude que cela représente.

bucheron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Juin 16, 2006 19:34

Message le Sam Sep 27, 2008 12:59

mais y aurait il une autre solution ?

ou peut être une autre approche ? (genre structurer la base de données différemment)

bucheron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Juin 16, 2006 19:34

Message le Lun Sep 29, 2008 19:55

je ne sais pas si vous connaissez, mais prenons l'exemple du site http://www.adopteunmec.com (concept assez marrant au passage). Ce site vous propose de rechercher les filles (et oui c est un site de rencontre) , par rapport à votre localisation, qui sont à X kilomètres de vous. (fonction présente dans la partie recherche).

J'ai trouvé cette idée très astucieuses, d'ou mon post.
Donc apparemment c'est possible, mais comment font il ?
Je ne pense pas qu'ils vont effectuer une requete sur chaque fille dans la BDD.

Quand pensez vous.

PS: désolé mais pour voir la fonctionnalité il faut s'inscrire.


OTP
Modérateur
Modérateur
 
Messages: 13056
Inscription: Ven Déc 16, 2005 22:41

Message le Lun Sep 29, 2008 20:39

bucheron a écrit:Quand pensez vous.


Plutôt le matin... :roll:

A mon avis, comme dit plus haut avec un cercle à gérer, pas le choix, il faut passer par un test à chaque enregistrement.
Ou alors raisonner au premier ordre (avec les développements limités des sin et cos) et faire le calcul dans le WHERE de la requete. A voir si c'est possible.

Edit : pour compenser l'erreur des développements limités, restreindre au préalable avec un carré au lieu d'un cercle. Attention aux bugs aux pôles...

bucheron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Juin 16, 2006 19:34

Message le Mar Sep 30, 2008 12:03

j'ai trouvé un article traitant du sujet. Et justement par rapport à une requète SQL.

Pour le moment je ne peux tester mais j'aurais bien aimé savoir ce que vous en pensez.

Voila l'article:
http://www.awelty.fr/index.php?post/2008/09/24/Afficher-les-villes-a-proximite-dune-ville-de-reference-par-rapport-a-une-distance-en-km-en-SQL-/-PHP

jpw
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 154
Inscription: Lun Juin 23, 2008 16:51

Message le Mar Sep 30, 2008 12:22

bonjour

j'utilise cette fonction pour un site que je suis en train de refaire

bon, les pages ne sont pas finalisées donc ne m'en voulez pas trop...

bon ça commence là :
(désolé c'est sur l'afrique pas la france)

http://www.revafrique.com/geographie/

soit on tape le nom d'une ville par le nom
soit on choisit un pays pour afficher les principales villes

bon si on suit le choix proposé "dakar"
on voit que le nom existe dans 4 pays

on en choisit un et j'affiche sur la carte les points les plus proches
et j'en fait une liste plus conséquente

bon c'est loin d'être finalisé

j'en encore plein de tracassins à règler
mais ça peut donner une idée

idem ici

http://www.revafrique.com/reserves/limpopo.php

jpw

bucheron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Juin 16, 2006 19:34

Message le Mar Sep 30, 2008 13:46

en effet cela rejoint ce que je recherche.

N'étant pas un connaisseur de l'Afrique, peux tu me dire si la requete sql est pertinente pour les villes recherchés.

en gros si les résultats recherchés sont ceux que tu voulais ou si il y a des différences ?

jpw
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 154
Inscription: Lun Juin 23, 2008 16:51

Message le Mar Sep 30, 2008 15:39

ben vu que les coordonnées proviennent de mes fichiers....

si c'est pas bon, je dois m'en prendre à moi....


Formation recommandée sur ce thème :

Formation Google Maps, Google News et Google Images : apprenez comment optimiser le référencement de votre site pour la recherche universelle et notamment Google Maps, Google Actualités et Google Images. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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