CeMap

De Lillois Fractale Wiki
Aller à : navigation, rechercher

Intro

Voir aussi GeoJava

Latitude et longitude

Tous les points du globe sont classiquement caractérisés par:

  • une latitude α (-π/2 <= α <= π/2). α = 0 à l'équateur. α = π/2 au pôle nord. α = -π/2 au pôle sud.
  • une longitude β (-π <= β  <= π). β = 0 au méridien de Greenwhich (arbitraire).

Une documentation pus précise figure ici.

Pour la suite. la Terre est assimilée à un objet parfaitement sphérique.

 

Projection CeMap

La projection CeMap (centered map) vise à mettre tout les points de la Terre sur une carte en forme de disque, ce disque étant centré sur un point librement choisi. Ce point central est caractérisé par ses coordonnées (α00).

La suite de l'article vise à transformer mathématiquement un point quelconque (α,β) en coordonnées polaires (θ,R) utilisable pour construire le disque projeté (0<=R<=1)

En coordonnées cartésiennes (x,y,z) le point (α,β) devient (cos α cos β, cos α sin β, sin α). On prend pour unité le rayon de la Terre. La troisième coordonnée est la 'verticale' (le troisième axe passe par les pôles).

Il est établi que le vecteur orthogonal au vecteur (x1,y1,z1) et au vecteur (x2,y2,z2) est donné par le produit vectoriel (y2 z1 - z2 y1 , z2 x1 - x2 z1 , x2 y1 - x1 y2). 

Soient d'une part les trois points

  1. milieu de la Terre cartésien:(0,0,0)
  2. (α,β) cartésien:(cos α cos β, cos α sin β, sin α)
  3. 00) cartésien:(cos α0 cos β0, cos α0 sin β0, sin α0)

Le vecteur v, orthogonal à la fois au vecteur (α,β) et au vecteur (α00) est donné (cartésien) par:

(v1 , v2 , v3) = (cos α0 sin β0 sin α - cos α sin β sin α0, cos α cos β sin α0 - cos α0 cos β0 sin α, cos α cos α0 (sin β cos β0 - cos β sin β0) )

Ce vecteur n'est pas normé.

Soient d'autre part les trois points

  1. milieu de la Terre cartésien:(0,0,0)
  2. pôle nord cartésien:(0,0,1)
  3. 00) cartésien:(cos α0 cos β0, cos α0 sin β0, sin α0)

Le vecteur w orthogonal à la fois au vecteur polaire et au vecteur (α00) est donné (cartésien) par:

(w1 , w2 , w3) = (sin β0 , - cos β, 0)

Ce vecteur est normé.

Les deux vecteurs déterminés sont normés.

Chacun des deux ensembles de trois points détermine un plan. L'angle formé par ces plans est aussi l'angle formé par leurs vecteurs perpendiculaires

cos θ = [ sin β (cos α0 sin β0 sin α - cos α sin β sin α0)  - cos β(cos α cos β sin α0 - cos α0 cos β0 sin α) ] / cos α0                  (non - problème de norme)
cos θ = sin α - cos α tg α0 * (sin β sin β0 - cos β cos β0)

 

Donc le vecteur orthogonal à la fois au vecteur (α,β) et au vecteur (α00) est donné (cartésien) par:

(cos α0 sin β0 sin α - cos α sin β sin α0, cos α cos β sin α0 - cos α0 cos β0 sin α, cos α cos α0 (sin β cos β0 - cos β sin β0) )

a pour équation:

x (cos α0 sin β0 sin α - cos α sin β sin α0) + y (cos α cos β sin α0 - cos α0 cos β0 sin α) + z cos α cos α0 (sin β cos β0 - cos β sin β0) = 0

De même, le plan 'vertical' contenant les trois points (0,0,0), (0,0,1), (cos α0 cos β0, cos α0 sin β0, sin α0) a pour équation:

x sin β0 - y cos β0 = 0

Et l'angle θ formé par ces deux plans, qui est aussi égal à celui de leurs vecteurs orthogonaux, est ensuite donné par :

cos θ = [ sin β (cos α0 sin β0 sin α - cos α sin β sin α0)  - cos β(cos α cos β sin α0 - cos α0 cos β0 sin α) ] / cos α0
cos θ = sin α - cos α tg α0 * (sin β sin β0 - cos β cos β0)

La distance D entre les deux points (α00) et (α,β) est donnée par:

D2 = (cos α cos β - cos α0 cos β0)2 + (cos α sin β - cos α0 sin β0)2 +(sin α - sin α0)2

Cette distance est comprise entre 0 et 2. 0 <= D <= 2

Pour R, on peut choisir librement une fonction R= R(D), pour autant que :

  • 0 <= R <= 1
  • R(2) = 1
  • R'(D) > 0  (dérivée positive, monotone croissante)
  • R(D) < 0  (dérivée seconde négative, objets proches plus dilatés que lointains)

Ntamment, toutes les fonctions suivantes sont acceptables, et ne varient que par leur "facteur de magnification m":

R = D m / 2 m

Le facteur de magnification m est compris entre 0.01 et 1.0.

Par défaut, on peut partir de m=0.5:

R = D 1/2 / 2 1/2

L'ensemble des formules qui précèdent permettent d'établir la relation complète (R,θ) = F(α0,β0,α,β) .

Programme

Le programme CeMap contient une base de donnée incluant les coordonnées des points (α,β) utiles:

  • frontières de états et des terres immergées
  • villes importantes
  • méridiens et parallèles

Cette base de données peut être construite à partir de bases publiques sur internet.

Le pogramme contient également les procédures implémentant (R,θ) = F(α0,β0,α,β) .

L'interface utilisateur montre à tout moment le globe en projection CeMap.

L'interface utilisateur permet aussi de cliquer sur n'importe quel point du globe, qui devient ainsi dynamiquement le centre de la projection ((α0,β0).

Lorsque l'utilisateur déplace sa souris sans cliquer, les coordonnées du point survolé sont affichées en 3 modes (toutes les transformations sont bijectives):

  • latitude & longitude
  • R & θ (polaires)
  • x & y (cartésiennes)

Par ailleurs, des fonctions permettent à l'utilisateur de télécharger des images à haute résolution et des impressions diverses, tout cela sous forme de services payants.

Ler programme est accessible à cette adresse: xxx.