gebox.inc.php
définition de classes définissant un BBox avec des coord. géographiques ou euclidiennes
La classe abstraite BBox implémente des fonctionnalités génériques valables en coord. géo. comme euclidiennes Des classes héritées concrètes GBox et EBox implémentent les fonctionnalités spécifiques aux coord. géo. ou euclidiennes. Comme dans GeoJSON, on distingue la notion de Point, qui est une primitive géométrique, de la notion de position qui permet de construire les primitives géométriques. Une position est stockée comme un array de 2 ou 3 nombres. On gère aussi une liste de positions comme array de positions et une liste de listes de positions comme array d'array de positions.
Les rectangles à cheval sur l'anti-méridien soulèvent des difficultés particulières. Ils peuvent être pris en compte en gérant les positions à l'Est de l'anti-méridien avec une longitude > 180°.
journal: |
- 31/8/2023:
- modif de BBox pour mettre en readonly les prop. $min et $max, modif des méthodes modifiant $min ou $max
- 15/8/2023:
- ajout de BBox::includes()
- modification de BBox::__toString()
- intégration dans GBox::__construct() de l'initialisation d'un GBox à partir du format Spatial
- 28/7/2022:
- correction suite à analyse PhpStan level 4
- 22/5/2022:
- correction d'un bug dans GBox::asGeoJsonBbox()
- 29/4/2022:
- création d'un GBox à partir des coins SW et NE et prise en compte du cas où il intersecte l'anti-méridien
- 9/3/2019:
- scission de gegeom.inc.php
- 7/3/2019:
- création
Table of Contents
Classes
- BBox
- Boite englobante en coord. géo. ou euclidiennes, chaque position codée comme [lon, lat] ou [x, y]
- GBox
- BBox en coord. géo., chaque position codée comme [lon, lat]
- GBoxSubClass
- Vérification que includes() peut être appelée avec small objet d'une sous-classe de GBox
- EBox
- BBox en coord. projetées euclidiennes, chaque position codée comme [x, y]