Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 24 August 2006 22:34

julien.63
Juste Inscrit !
Lieu: panama
Date d'inscription: 24 Aug 2006
Messages: 2
Site web

[mapserver] calcul de distance

Bonjour,
je suis encore débutant, mais j'essaie de créer un petit outil pour calculer des distances pour mon application mapserver. Il s'agit plus précisement d'une fonction php utilisant la méthode distanceToPoint de php mapscript.

Mes cartes utilisant principalement des coordonnées longitude et latitude, je procéde à une reprojection des points avant d'utiliser la méthode citée ci-dessus.

Code:

function distance2point($points){
    $measure_distance = 0;
    for ($i=0; $i<count($points)-1; $i++){
        $x1 = $points[$i][0];
        $y1 = $points[$i][1];
        $x2 = $points[$i+1][0];
        $y2 = $points[$i+1][1];
        $p1 = ms_newPointObj();
        $p1->setXY($x1,$y1);
        $p1->project(ms_newprojectionobj("init=epsg:4326"),ms_newprojectionobj("init=epsg:26971"));
        $p2 = ms_newPointObj();
        $p2->setXY($x2,$y2);
        $p2->project(ms_newprojectionobj("init=epsg:4326"),ms_newprojectionobj("init=epsg:26971"));
        $distance = $p1->distanceToPoint($p2);
        $p1->free();
        $p2->free();
        $distance = $distance /1000;
        $measure_distance += round($distance,2);
    }
    return $measure_distance;
}

sachant que le tableau $point se présente ainsi :
[0] => Array  (-83.892,10.832  )
[1] => Array  (-77.436,11.432  )

ça fonctionne bien pour la zone dans laquelle je me trouve (à savoir panama) mais par contre si je m'éloigne, les résultats sont complétements faux.

Je pense que le problème vient des codes espg, mais j'avoue ne pas être à l'aise avec ces codes, ne pas bien savoir lesquels utiliser et même ne plus me souvenir où j'ai trouvé celui que j'utilise actuellement pour la reprojection (26971).

Comment savoir donc quel code utilisé en fonction de la zone visualisée par l'utilisateur?

Merci pour vos conseils,

Julien


Julien
---------------------------------------------------------------
http://ouceqte.free.fr  |  http://mapserver.stri.si.edu

Hors ligne

 

#2 Fri 01 September 2006 22:26

julien.63
Juste Inscrit !
Lieu: panama
Date d'inscription: 24 Aug 2006
Messages: 2
Site web

Re: [mapserver] calcul de distance

Bon, permettez moi de reformuler et peut être de clarifier ce que je cherche à savoir  :-)

En fait ma question se résume à : comment fait-on pour projeter des données de latitude / longitude vers UTM? De quelles informations a-t-on besoin?

Merci d'avance,

Julien


Julien
---------------------------------------------------------------
http://ouceqte.free.fr  |  http://mapserver.stri.si.edu

Hors ligne

 

Pied de page des forums

Powered by FluxBB