UTM
extends Ellipsoid
in package
implements
iCoordSys
définition des systèmes de coordonnées UTM zone
La projection UTM est définie par zone correspondant à un fuseau de 6 degrés en séparant l’hémisphère Nord du Sud. Soit au total 120 zones (60 pour le Nord et 60 pour le Sud). Cette zone est définie sur 3 caractères, les 2 premiers indiquant le no de fuseau et le 3ème N ou S. La projection UTM peut être définie sur différents ellipsoides. L'exemple USGS utilise l'ellipsoide de Clarke 1866.
Table of Contents
Interfaces
- iCoordSys
- interface de définition d'un système de coordonnées
Constants
- DEFAULT = 'IAG_GRS_1980'
- ErrorUndef = 'Ellipsoid::ErrorUndef'
- k0 = 0.9996
- PARAMS = ['IAG_GRS_1980' => \coordsys\IAG_GRS_1980::PARAMS, 'WGS-84' => [ 'title' => "Ellipsoide WGS-84 utilisé pour le GPS, quasiment identique à l'IAG_GRS-1980", 'epsg' => 'EPSG:4326', 'a' => 6378137.0, // Demi grand axe de l'ellipsoide - en anglais Equatorial radius - en mètres 'f' => 1 / 298.257223563, ], 'Clarke1866' => [ 'title' => "Ellipsoide Clarke 1866", 'epsg' => 'EPSG:7008', 'comment' => "Ellipsoide utilisé pour le système géodésique North American Datum 1927 (NAD 27) utilisé aux USA", 'a' => 6378206.4, // Demi grand axe de l'ellipsoide 'b' => 6356583.8, // Demi petit axe 'f' => 1 / 294.978698214, ]]
- constante définissant différents ellipsoides
Properties
- $current : string
- ellipsoide courant, par défaut IAG_GRS_1980
Methods
- a() : float
- available() : array<int, string>
- retourne la liste des ellipsoides proposés
- current() : string
- retourne l'ellipsoide courant
- distanceAlongMeridianFromTheEquatorToLatitude() : float
- e() : float
- e2() : float
- geo() : TPos
- coord. UTM zone -> [lon, lat] en degrés
- lambda0() : float
- proj() : TPos
- (lon, lat) en degrés déc. -> [X, Y] en UTM zone
- set() : void
- Définition d'un ellipsoide
- Xs() : float
- Ys() : float
- zone() : string
- (longitude, latitude) en degrés -> zone UTM
- param() : float|null
- retourne la valeur d'un paramètre stocké pour l'ellipsoide courant
Constants
DEFAULT
public
mixed
DEFAULT
= 'IAG_GRS_1980'
ErrorUndef
public
mixed
ErrorUndef
= 'Ellipsoid::ErrorUndef'
k0
public
mixed
k0
= 0.9996
PARAMS
constante définissant différents ellipsoides
public
mixed
PARAMS
= ['IAG_GRS_1980' => \coordsys\IAG_GRS_1980::PARAMS, 'WGS-84' => [
'title' => "Ellipsoide WGS-84 utilisé pour le GPS, quasiment identique à l'IAG_GRS-1980",
'epsg' => 'EPSG:4326',
'a' => 6378137.0,
// Demi grand axe de l'ellipsoide - en anglais Equatorial radius - en mètres
'f' => 1 / 298.257223563,
], 'Clarke1866' => [
'title' => "Ellipsoide Clarke 1866",
'epsg' => 'EPSG:7008',
'comment' => "Ellipsoide utilisé pour le système géodésique North American Datum 1927 (NAD 27) utilisé aux USA",
'a' => 6378206.4,
// Demi grand axe de l'ellipsoide
'b' => 6356583.8,
// Demi petit axe
'f' => 1 / 294.978698214,
]]
Properties
$current
ellipsoide courant, par défaut IAG_GRS_1980
public
static string
$current
= self::DEFAULT
Methods
a()
public
static a() : float
Return values
floatavailable()
retourne la liste des ellipsoides proposés
public
static available() : array<int, string>
Return values
array<int, string>current()
retourne l'ellipsoide courant
public
static current() : string
Return values
stringdistanceAlongMeridianFromTheEquatorToLatitude()
public
static distanceAlongMeridianFromTheEquatorToLatitude(float $phi) : float
Parameters
- $phi : float
Return values
floate()
public
static e() : float
Return values
floate2()
public
static e2() : float
Return values
floatgeo()
coord. UTM zone -> [lon, lat] en degrés
public
static geo(array<string|int, mixed> $xy[, string|null $zone = null ]) : TPos
Parameters
- $xy : array<string|int, mixed>
-
coordonnées projetées [X, Y]
- $zone : string|null = null
Return values
TPos —position géographique (longitude, latitude) en degrés déc.
lambda0()
public
static lambda0(int $nozone) : float
Parameters
- $nozone : int
Return values
floatproj()
(lon, lat) en degrés déc. -> [X, Y] en UTM zone
public
static proj(array<string|int, mixed> $lonlat[, string|null $zone = null ]) : TPos
Parameters
- $lonlat : array<string|int, mixed>
-
position géographique (longitude, latitude) en degrés déc.
- $zone : string|null = null
Return values
TPos —coordonnées projetées [X, Y]
set()
Définition d'un ellipsoide
public
static set([string $ellipsoid = self::DEFAULT ]) : void
Parameters
- $ellipsoid : string = self::DEFAULT
Xs()
public
static Xs() : float
Return values
floatYs()
public
static Ys(string $NS) : float
Parameters
- $NS : string
Return values
floatzone()
(longitude, latitude) en degrés -> zone UTM
public
static zone(TPos $pos) : string
Parameters
- $pos : TPos
Return values
stringparam()
retourne la valeur d'un paramètre stocké pour l'ellipsoide courant
private
static param(string $name) : float|null
Parameters
- $name : string