- PHP : Classe GPS - calcul distance - CodeS SourceS
- Visual Basic / VB.NET : [vba excel] calculer la distance entre deux coordonnées géogra
- Calcul de distance entre 2 points géodésiques
- Classe de calcul matriciel (vc++ et devcpp)
- C / C++ / C++.NET : Classe de calcul matriciel (vc++ et devcpp) - CodeS SourceS
C'est un bon début de classe métier, elle fait des choses simples mais elle le fait bien. C'est l'occasion pour faire des objets plus objets pour du PHP5 (qui a 10 ans ne l'oublions pas). J'entends par là de bien séparé les différents métiers que cette classe fait. Par exemple est-ce vraiment à la méthode distance de la classe GPS de changer les unités des points ?
Je pense que non. Le membre de la classe $earth_radius est-il amené à changer ? Non plus.
Je vous propose de séparer cette classe en deux objets.
* Un objet Point, avec un constructeur prenant deux flottants en paramétre et une méthode public toRad() qui retourne la valeur du flottant en radiant.
* Un objet GPS, avec un constructeur prenant deux objets Point en entrée.
De passer $earth_radius en constante de classe.
Cela ne change pas fondamentalement les choses mais c'est une approche plus objets, je trouve que c'est également un bon exercice.
- Constantes de classe
- POO PHP5
Pour améliorer cette approximation on peut calculer une sphère qui localement colle à peu près à la réalité. De cas le rayon de la terre dépend du système de référence choisi (RGF93, WGS 84, etc...) et du point de départ. L'approximation par sphère locale donne un résultat centimétrique jusqu'à 50 km environ, au delà l'incertitude augmente rapidement.
Je vous invite à consulter les site de l'IGN, mots clés géodésie, distance suivant la courbue, approximation sphérique.
Le but de cette classe - qui sera complétée par d'autres méthodes - c'est avant tout déterminer la distance entre deux points. Je m'en sers personnellement ici:
http://www.camping-car.org/aires/autour-de-vous
Je récupère la localisation de l'utilisateur, puis en SQL je cherche toutes les aires dans une zone comprise en lon et lat +/- un décalage arbitraire qyui permet d'isoler les fiches qui m'intéressent.
Ensuite, fiche par fiche, je calcule la distance de ces sites par rapport au point de référence (position de l'utilisateur). J'effectue un tri et je restitue la liste des sites par distance croissante.
Par exemple, pour ma position, j'ai une aire à RENNES LE CHATEAU à 20 Km de ma position. Si je fais calculer par Google Maps un trajet routier, en réalité, j'ai 52 Km de route. J'indique bien que c'est la distance en ligne droite approximative.
A+
J'entends bien ce que vous me dites. Ce n'était pas l'objet de mon message. Je donnais juste des conseils pour faire des objets un peu moins bâtards et de bonne pratique de conception d'objet PHP5.
PSR
@+