je suis en train de réaliser un système intéractif de cartographie tres simplifiée pour présenter des vue de réseau wifi.
j'ai besoin de :
1 - représenter une vue 2D, meme approximative ; j'ai deja réalisé quelque classes qui me permettent d'afficher (sans projection) les coordonnées géographiques sur une image générée a la volée.
2- j'ai aussi créé la notion de lien.
3 - la carte est en phase de devenir intéractive. Les objets affichés vont bientot réagir aux intéractions.
j'aurais besoin d'informations complémentaires :
1 - un algorythme permettant de trouver les nodes les plus proches. Je pensais creer un arbre de type b-tree. La fonction de comparaison pour insersion dans les noeuds et sous-noeuds étant tout simplement la distance.
Il suffit de comparer recursivement la distance, a gauche, a droite et de rentrer judicieusement dnas les sous-arbres.
Par la suite, pour détecter les voisin, il suffit de parcourir l'arbre.
J'espere que cet algo tient la route, je n'en n'ai pas la certitude, mais c'est intéressant de voir ... Je suppose qu'il doit exister d'autres methodes avec un decoupage par zone.
2 - j'aimerai bien evaluer les distances en kilometre et metres, meme sans une grande précision. Pour cela j'ai trouvé quelque sites :
étant donné que les distances utilisées dans le cadre de ce projet sont tres courtes, la courbure de la terre ne devrait pas avoir une importance significative. Aussi je pensais calculer la distance en applicant le théoreme de Pythagore, connaissance le rayon moyen de la terre, ca devrait suffir. Mais les resultats obtenus ne sont pas statisfaisants : trop grande erreur par rapport a des valeurs de reference trouvées sur le net.
Dans mon algo, j'ai défini une classe Terre avec un rayon de 6366 (lion1906). J'en déduit les dimensions d'un degré d'arc (a l'equateur) : 111km. Il est plus petit sous nos latitudes : reduit de cos(latitude). A partir de ces données, une simple triangulation avec un triangle rectangle (donc Pythagore) devrait suffir, hors, j'obtient des décalage de 25 à 50%.
ou est mon errreur ?
voici mes 2 methodes php :
function distance(){
# théoreme de pythagore devrait suffire sur des petites distances !
$width = ($this->p1->x - $this->p2->x);
$height = ($this->p1->y - $this->p2->y);
# manque cos(latitude)
return ( $this->terre->degre * sqrt(pow($width, 2) + pow($height,2)));
}
# cartographie en php pour projet Wifi
Posté par Marc Quinton . En réponse à la dépêche La spatialisation libre avance : tour d'horizon. Évalué à 3.
je suis en train de réaliser un système intéractif de cartographie tres simplifiée pour présenter des vue de réseau wifi.
j'ai besoin de :
1 - représenter une vue 2D, meme approximative ; j'ai deja réalisé quelque classes qui me permettent d'afficher (sans projection) les coordonnées géographiques sur une image générée a la volée.
2- j'ai aussi créé la notion de lien.
3 - la carte est en phase de devenir intéractive. Les objets affichés vont bientot réagir aux intéractions.
j'aurais besoin d'informations complémentaires :
1 - un algorythme permettant de trouver les nodes les plus proches. Je pensais creer un arbre de type b-tree. La fonction de comparaison pour insersion dans les noeuds et sous-noeuds étant tout simplement la distance.
Il suffit de comparer recursivement la distance, a gauche, a droite et de rentrer judicieusement dnas les sous-arbres.
Par la suite, pour détecter les voisin, il suffit de parcourir l'arbre.
J'espere que cet algo tient la route, je n'en n'ai pas la certitude, mais c'est intéressant de voir ... Je suppose qu'il doit exister d'autres methodes avec un decoupage par zone.
2 - j'aimerai bien evaluer les distances en kilometre et metres, meme sans une grande précision. Pour cela j'ai trouvé quelque sites :
http://www.lion1906.com/Pages/Orthodromie.html(...)
http://www.ign.fr/telechargement/education/fiches/geodesie/coordonn(...)
étant donné que les distances utilisées dans le cadre de ce projet sont tres courtes, la courbure de la terre ne devrait pas avoir une importance significative. Aussi je pensais calculer la distance en applicant le théoreme de Pythagore, connaissance le rayon moyen de la terre, ca devrait suffir. Mais les resultats obtenus ne sont pas statisfaisants : trop grande erreur par rapport a des valeurs de reference trouvées sur le net.
Dans mon algo, j'ai défini une classe Terre avec un rayon de 6366 (lion1906). J'en déduit les dimensions d'un degré d'arc (a l'equateur) : 111km. Il est plus petit sous nos latitudes : reduit de cos(latitude). A partir de ces données, une simple triangulation avec un triangle rectangle (donc Pythagore) devrait suffir, hors, j'obtient des décalage de 25 à 50%.
ou est mon errreur ?
voici mes 2 methodes php :
function distance(){
# théoreme de pythagore devrait suffire sur des petites distances !
$width = ($this->p1->x - $this->p2->x);
$height = ($this->p1->y - $this->p2->y);
# manque cos(latitude)
return ( $this->terre->degre * sqrt(pow($width, 2) + pow($height,2)));
}
# http://www.lion1906.com/Pages/OrthodromieCap.html(...)
function distance_orthodromique(){
$LatA = deg2rad($this->p1->latitude());
$LatB = deg2rad($this->p2->latitude());
$LongA = deg2rad($this->p1->longitude());
$LongB = deg2rad($this->p2->longitude());
return 6366 * acos(cos($LatA) * cos($LatB) * cos($LongB-$LongA)+sin($LatA) * sin($LatB));
}