Aide - Recherche - Membres - Calendrier
Version complète : [LOMFD] Cartographie dans LO
3rd-Wing · Escadre virtuelle DCS > DCS (& LockOn) > 3rd Wing devs' zone > LOMFD & LOPSP
Doug
J'ai qqs petits soucis avec la carte de LO qui me sert pour le GPS.
J'étais parti sur le fait que c'était une Mercator alors qu'il semblerait que ce soit en faite une Lambert. En effte, comme on peut le voir sur la screen ci-dessous, les parallèles sont "droit" et concour tous vers un point (nord géographique) tandis que les méridiens sont incurvés (vers le haut car latitude Nord).

Bref, je suis bien ambetté, il faut que je trouve une méthode pour pouvoir convertir des coordonées (Lat, Long, Alt) en PositionX/PositionY sur ma carte sachant son type (Lambert) et en utilisant Kerch comme référence(j'ai sa position X/Y et Lat/Long/Alt). Qqun a t'il ca sous la main ?

Image IPB
samche
j'avoue, j'ai pas très bien compris tout ça mais je suis déjà tombé sur un problème de conversion lat/long/alt en coordonnées cartesiennes:
http://www.flightgear.org/Docs/Scenery/Coo...nateSystem.html

en espérant que ça t'aide
Doug
En faite, mon problème est propre aux cartes Lambert.
Side
en fait le pb de Doug c'est la méthode utilisé sous Lock On pour faire la carte.
Comme la Trre est ronde tu ne peux pas la déplier pour obtenir une carte plane.
Il esxiste donc plusieurs types de méthodes pour la cartographie dépendant du lieu de la carte à dessiner, c'est entre autres les projection Lambert , Mercator, stéréographique. La Mercator est utilisé pour la region équateur tropique, en gros on pose un calque de le forme d'un tube avec la Terre au centre et on reporte sur la carte les partie qui touche les deux formes geométriques.
La lambert est utilisé pour les regions tempérés, Cette fois la projections est conique mais le principe est toujours le même,
idem pour la stéréographique utilisé pour les pôles sachant que le calque est à présent une feuille plane.

On voit donc bien que chaque carte à des caractéristiques bien particulières
Nounours
Essaie le site de l'IGN http://www.ign.fr/rubrique.asp?rbr_id=1&lng_id=FR
Tu formules une requête et tu obtiens un tas de documents .pdf avec des formules mathématiques toutes plus compliquées les unes que les autres...
Bonne chance.

Ours
Doug
CITATION(Side @ 28 Oct 2006, 11:53) *
On voit donc bien que chaque carte à des caractéristiques bien particulières

Il me semble bien que c'est une Lambert dans LO.

@Nounours: OK je vais regarder.
Doug
Alors, des idées ?
genius
Il y a IGN IGN que tu as surement deja vu

Il y a un tableau de conversion excel a telecharger ici (RGF93) Site


ou un logiciel de conversion ici Site

Il y a plein de formules compliquées dans Wikipedia blink.gif


Je sais pas si cela va t'aider...
Doug
Merci Genios,

Je suis en train de regarder du côté du système X/Z utilisé par ED pour les wpt.


Connaissez vous le centre du monde ?
ED oui:

Image IPB

La texture traitresse ... wavetowel2.gif
45° 07' 18'' N
34° 16' 16'' E
genius
Normallement avec ce point referentiel tu dois pouvoir les convertir, je crois qu'avec le peu que j'ai compris (enfin si j'ai compris gap.gif ) les calculs different suivant la lattitude du référentiel.

Essaye de voir avec les formules sur la corse c'est peut être la même latitude (a qqe chose près ...j'ai pas de carte )

Enfin bon courage pour la prise de tête goodluck.gif
Doug
Yep, je me suis fait une petite classe tongue.gif

CODE
public class XYandLatLong
        {
            static float zeroX = 5000000f;
            static float zeroZ = 6600000f;
            // data for recalculation

            static float centerX = 11465000f - zeroX; // circle center
            static float centerZ = 6500000f - zeroZ;

            static float pnSxW_X = 4468608.57f - zeroX; // point 40dgN : 24dgE
            static float pnSxW_Z = 5730893.72f - zeroZ;

            static float pnNxW_X = 5357858.31f - zeroX; // point 48dgN : 24dgE
            static float pnNxW_Z = 5828649.53f - zeroZ;

            static float pnSxE_X = 4468608.57f - zeroX; // point 40dgN : 42dgE
            static float pnSxE_Z = 7269106.20f - zeroZ;

            static float pnNxE_X = 5357858.31f - zeroX; // point 48dgN : 42dgE
            static float pnNxE_Z = 7171350.00f - zeroZ;

            //
            static double lenNorth = Math.Sqrt((pnNxW_X - centerX) * (pnNxW_X - centerX) + (pnNxW_Z - centerZ) * (pnNxW_Z - centerZ));
            static double lenSouth = Math.Sqrt((pnSxW_X - centerX) * (pnSxW_X - centerX) + (pnSxW_Z - centerZ) * (pnSxW_Z - centerZ));
            static double lenN_S = lenSouth - lenNorth;

            static double RealAngleMaxLongitude = Math.Atan(((double)pnSxW_Z - centerZ) / (pnSxW_X - centerX)) * 180f / Math.PI;
            // borders
            static float EndWest = 24f;
            static float EndEast = 42f;
            static float EndNorth = 48f;
            static float EndSouth = 40f;
            static float MiddleLongitude = (EndWest + EndEast) / 2;
            static float ToLengthN_S = (float)((EndNorth - EndSouth) / lenN_S);
            static double ToAngleW_E = (MiddleLongitude - EndWest) / RealAngleMaxLongitude;

            public static double Longitude(float x, float z)    // degrees , (x (meters) - to North, z (meters) - to East)
            {
                double ang = -Math.Atan(((double)(z - centerZ)) / (x - centerX)) * ToDegree;
                return ang * ToAngleW_E + MiddleLongitude;
            }

            public static double Latitude(float x, float z)    // degrees (x (meters) - to North, z (meters) - to East)
            {
                double len = lenSouth - Math.Sqrt((x-centerX)*(x-centerX) + (z-centerZ)*(z-centerZ));
                return len * ToLengthN_S + EndSouth;
            }

            public static PointCarte GetCoords(double inLatitudeDegrees, double inLongitudeDegrees)
            {
                // Lo coordinates system
                double realAng = (inLongitudeDegrees - MiddleLongitude) / ToAngleW_E / Utils.ToDegree;    
                double realLen = lenSouth - (inLatitudeDegrees - EndSouth) / ToLengthN_S;
                double outX = centerX - realLen * Math.Cos(realAng);
                double outZ = centerZ + realLen * Math.Sin(realAng);
                return new PointCarte(outX, outZ);
            }
        }

Nounours
En fait, il existe bien d'autres "centres du monde"!!!
En effet, en suivant vers l'est la "ligne" à partir du point (45° 07' 18''N,34° 16' 16''E) on en découvre une autre à (45°07'07"N,34°31'32"E) puis un autre à (45°06'54"N,34°46'47"E) etc...
De même si on revient au point de départ et qu'on suit la "ligne" vers le sud on trouve (44°56'11"N,34°46'29"E) etc...
Ces lignes semblent plutot correspondre à des joints (imparfaits) entre des "patchs" de texture de la carte.
(Je n'ai pas encore vérifié si on retrouvais cette "ligne" sur le sol dans Lo mais je vais essayer.)

Voilà, je ne suis pas sûr que cette observation sois d'une quelconque utilité mais qui sait?

Ours
Yaniro
En fait , c'est la pliure d'une carte IGN, qu'ils ont scanné !!!



jesors.gif
Doug
CITATION(Nounours @ 30 Oct 2006, 19:38) *
En fait, il existe bien d'autres "centres du monde"!!!
En effet, en suivant vers l'est la "ligne" à partir du point (45° 07' 18''N,34° 16' 16''E) on en découvre une autre à (45°07'07"N,34°31'32"E) puis un autre à (45°06'54"N,34°46'47"E) etc...
De même si on revient au point de départ et qu'on suit la "ligne" vers le sud on trouve (44°56'11"N,34°46'29"E) etc...
Ces lignes semblent plutot correspondre à des joints (imparfaits) entre des "patchs" de texture de la carte.
(Je n'ai pas encore vérifié si on retrouvais cette "ligne" sur le sol dans Lo mais je vais essayer.)

Voilà, je ne suis pas sûr que cette observation sois d'une quelconque utilité mais qui sait?

Ours

Si, ca incrémente le compteur de messages. wavetowel2.gif
Lol, oui j'ai vu qu'il existait pas mal de découpage en faite. La grande carte doit être découpe en plein de petit morceaux. Je continue mes tests thumbsup.gif
Cam_Skippy
Bonjour,
je parcours les posts.
En ce qui conserne tes problèmes de transformation, le plus simple est je pense d'utiliser un soft comme globalmapper.
Il permet le lire n'importe quel projection et de trasformer tes données. tu peux même géoréferencer ton image.
Grosso modo, tu prends googleearth, tu fais un snapshot tu le géoréférence pui stu change la projection?
Je pense que c'est le logiciel de réference.
Bon vol
seb
Doug
Merci Skippy.
Depuis j'ai solutioné le problème avec des outils de LockOn.
Wilbur
yep je ne sais pas si vous avez remarqué mais les méridien sont faux de toute manière, ils ne sont pas éspacés de 60 NM.

Nous avons aussi cartographié la carte et nous avons résolus le problème en réalisant nous même mes coordonées, ne reste plus qu'a bien plier nos parrallèles, et ça on verra dans une semaine.
Maraudeur
Heuuuu Wilbur....pour les méridiens c'est quand même un petit peu normal vu que nous ne sommes pas à l'équateur, et qu'il faut bien qu'ils se rejoignent tôt ou tard aux pôles whistling.gif

En revanche tu peux tester que le long de ces méridiens on aie bien 1°=60Nm ou encore 1'=1Nm...
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.