Forum Programmation.autre OpenGL et projections cartographiques

Posté par (page perso) .
1
11
mar.
2011

Re bonjour,
Je cherche à afficher des données cartographiques 2D, dont les différents éléments sont constitués de couples latitude/longitude. Et je désirerais être capable de changer de type de projection en cours d'exécution (Lambert, polaire, etc.).

Je n’arrive pas à voir si je peux implémenter cette projection par une modification de la Model View Matrix. En gros, ces projections sont-elles réalisables par des transformations affines en deux dimensions (je souhaiterais rester dans le plan ? ). Vu les maths poilues, ça m'étonnerait.

Y’aurait-il une façon maline de faire ça ou je suis obligé d’appeler une fonction de projection sur chaque élément avant de l'afficher ? Genre les projections OpenGL ? Sachant que je suis limité à OpenGL | SC (en gros du 1.0), donc je ne peux pas faire ça avec des shaders.

  • # Je n'ai pas de réponse…

    Posté par . Évalué à 1. Dernière modification le 11/03/11 à 22:54.

    juste un lien qui peut t'être utile pour avoir des algo pour les différentes projections :
    http://geodesie.ign.fr/index.php?page=documentation

    • [^] # Re: Je n'ai pas de réponse…

      Posté par (page perso) . Évalué à 1.

      Les algos ne sont pas vraiment le problème (ce ne sont que des équations, ça se code très facilement) , mais plutôt la façon d'appliquer ces algos de façon simple en OpenGL. Je regarde ton site de près cependant, merci !

  • # Non linéaire

    Posté par . Évalué à 1.

    Les matrices ne permettant de réaliser que des opérations linéaires et les latitude/longitude étant utilisé dans des cot,sin etc..., ca ne me semble pas possible directement.

    Il y a peut être une astuce mais je vois pas du tout laquelle.

    Si tu trouves je serais intéressé par la méthode.

    • [^] # Re: Non linéaire

      Posté par (page perso) . Évalué à 1.

      Oui, c'est ce qu'il me semble. Mais j'ai des exemples de déformations polynomiales, faut que je fouille dedans, mais pas sûr que ça marche en OpenGL. Sinon reste les shaders qui sont, je pense, la façon propre et efficace de faire ça, mais ça ne marchera pas avec tous les drivers. Bref, faut que je creuse le sujet...

  • # A quelle échelle ?

    Posté par . Évalué à 1.

    Tout dépend de l'échelle à laquelle tu travailles, si tu bosses sur des zones de taille raisonnable, tu peux linéariser tout ça avec des approximations minuscules.

    "The trouble with quotes on the internet is that it’s difficult to discern whether or not they are genuine.” Abraham Lincoln

    • [^] # Re: A quelle échelle ?

      Posté par (page perso) . Évalué à 1.

      L'échelle est variable, c'est pour un cockpit d'avion/hélico, donc potentiellement grande sur l'affichage d'une route complète. La possibilité de préciser et de changer de type de projection fait explicitement partie du besoin. Je crois que je ne vais pas pouvoir y couper...

  • # PROJ.4

    Posté par (page perso) . Évalué à 1.

    Bon, finalement j'ai utilisé une lib toute faite sous licence MIT, PROJ.4. Pas moyen de faire ça en modifiant la MMV.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.