IGNF / geoportal-extensions

French Geoportal Extensions for well-known javascript mapping libraries (Leaflet and OpenLayers)
https://ignf.github.io/geoportal-extensions/
Other
64 stars 33 forks source link

Extension OL3 : paramétrage de la méthode de mesure d'azimuth #114

Closed gcebelieu closed 7 years ago

gcebelieu commented 7 years ago

La mesure d'azimuth entre deux points peut différer selon qu'on la calcule en projection (https://fr.wikipedia.org/wiki/Loxodromie) ou le long de la géodésique (https://fr.wikipedia.org/wiki/Orthodromie).

Actuellement la méthode utilisée se fait le long de la géodésique, mais sur une première petite portion de l'azimuth, ce qui au final correspond au cap en projection car sur des petites distances, les deux méthodes convergent.

Au niveau de l'outil de mesure d'azimuth, il faudrait rendre paramétrable la méthode de calcul, à l'instar des autres outils de mesure en rajoutant une option booléenne "geodesic" au constructeur du widget.

Lorsque geodesic vaut true, le calcul se fait sur le long de la géodésique sur l'intégralité du tracé ; s'il elle vaut false, alors le calcul de l'azimuth se fait en projection.

Par défaut, geodesic doit valoir false car c'est la perception première de l'azimuth par les utilisateurs et c'est le comportement actuel par défaut.

Il faudrait aussi proposer un getter (isGeodesic) et un setter (setGeodesic) sur la propriété pour pouvoir modifier le comportement à la volée.

lowzonenose commented 7 years ago

En mode geodesic:true avec l'outil de mesure d'azimut, l'angle entre Nice et la Corse nous donne la valeur suivante : selection_121

Par contre, en mode geodesic:false (option par défaut), l'angle entre Nice et la Corse est bien un cap : selection_120