phpDocumentor

coordsys.inc.php

changement simple de projection a priori sur l'ellipsoide IAG_GRS_1980

Objectif d'effectuer simplement des changements de projection sur un même ellipsoide. Fonctions (long,lat) -> (x,y) et inverse Implémente les projections Lambert93, WebMercator, WorldMercator et UTM sur l'ellipsoide IAG_GRS_1980 par défaut. Le Web Mercator est défini dans: http://earth-info.nga.mil/GandG/wgs84/web_mercator/(U)%20NGA_SIG_0011_1.0.0_WEBMERC.pdf

La structuration informatique choisie consiste à définir les projections comme des classes portant des méthodes proj() pour projeter des coordonnées géographiques en coordonnées cartésiennes et à l'inverse geo() pour calculer les coordonnées géographiques à partir des coordonnées cartésiennes. Cette structuration permet notamment de ne pas avoir à créer un objet particulier pour effectuer un changement de coordonnées et d'utiliser facilement ces changements dans gegeom.inc.php où le changement prend en paramètre une fonction d'un système dans un autre. Elle permet ainsi une bonne indépendance entre le présent module et la définition des primitives géométriques dans gegeom.inc.php

Ces projections héritent d'une classe définissant l'ellipsoide sur lequel elles sont définies. Ces ellipsoides sont définis par 2 classes.

  • soit la classe IAG_GRS_1980 qui définit l'ellipsoide du même nom,
  • soit la classe Ellipsoid qui peut être paramétrée pour différents ellipsoides.

Si une projection définit l'ellipsoide sur lequel elle s'applique, comme par exemple Lambert93 ou WebMercator, alors la classe définissant cette projection hérite de la classe définissant cet ellipsoide. A l'inverse, si la projection peut être définie pour différents ellipsoides, comme par exemple UTM ou WorldMercator, alors la classe définissant cette projection hérite de la classe Ellipsoid qui peut ainsi être paramétrée.

Utilisation d'exceptions étendues avec un code string dont la valeur reprend le nom de la constante.

Pour calculer des surfaces, ajouter la projection sinusoidale qui est unique et équivalente (conserve localement les surfaces) https://fr.wikipedia.org/wiki/Projection_sinuso%C3%AFdale Voir ~/html/geovect/coordsys/light.inc.php

journal: |

  • 5-10/2/2022:
    • Ajout d'une exception dans les projections WebMercator et WorldMercator lorsque la latitude est < -85 ou > 85
    • Transformation des Exception en \SExcept et fourniture d'un code de type string
    • Amélioration de la doc
  • 18/3/2019:
    • Modification du code pour permettre de calculer les projections sur différents Ellipsoides.
    • Cette version ne permet pas d'effectuer un chagt d'ellipsoide.
  • 3/3/2019:
    • fork de ~/html/geometry/coordsys.inc.php, passage en v3
    • modification des interfaces pour utiliser systématiquement des positions [X, Y] ou [longitude, latitude] en degrés décimaux
    • modification des interfaces d'UTM, la zone est un paramètre supplémentaire, ajout de ma méthode zone()
    • La détection de WKT est transférée dans une classe spécifique.
  • 4/11/2018:
    • chgt du code WM en WebMercator
    • ajout de WorldMercator sous le code WorldMercator
  • 22/11/2017:
    • intégration dans geometry
  • 14-15/12/2016
    • ajout de l'UTM
    • chgt de l'organisation des classes et de l'interface
    • passage en v2
  • 14/11/2016
    • correction d'un bug
  • 12/11/2016
    • ajout de wm2geo() et geo2wm()
  • 26/6/2016
    • ajout de chg pour améliorer l'indépendance de ce module avec geom2d.inc.php
  • 23/6/2016
    • première version

Table of Contents

Interfaces

iEllipsoid
interface de définition d'un ellipsoide
iCoordSys
interface de définition d'un système de coordonnées

Classes

IAG_GRS_1980
définition de l'ellipsoide IAG_GRS_1980
Lambert93
définition du système de coordonnées Lambert 93 défini sur l'ellipsoide IAG_GRS_1980
WebMercator
définition du système de coordonnées Web Mercator
LonLatDd
définition du système de coordonnées LonLatDd correspondant aux coord. géo. en degrés décimaux dans l'ordre (lon,lat)
LatLonDd
définition du système de coordonnées LatLonDd correspond aux coord. géo. en degrés décimaux dans l'ordre (lat,lon)
Ellipsoid
définition d'un ellipsoide paramétrable
WorldMercator
définition de la projection de Mercator et du système de coordonnées WorldMercator défini sur l'ellipsoide IAG_GRS_1980.
UTM
définition des systèmes de coordonnées UTM zone

Functions

radians2degresSexa()  : string
Transformation d'une valeur en radians en une chaine en degres sexagesimaux

Functions

radians2degresSexa()

Transformation d'une valeur en radians en une chaine en degres sexagesimaux

radians2degresSexa(float $r[, string $ptcardinal = '' ][, float $dr = 0 ]) : string

si ptcardinal est fourni alors le retour respecte la notation avec point cardinal sinon c'est la notation signee qui est utilisee dr est la precision de r

Parameters
$r : float
$ptcardinal : string = ''
$dr : float = 0
Return values
string

        
On this page

Search results