Thème
Superviseur — Frontend v0.14.0
Superviseur — Frontend / features/map/MapGeometryUtils / MapGeometryUtils
Classe: MapGeometryUtils
Défini dans: features/map/MapGeometryUtils.ts:19
Utilitaire TypeScript pur pour la géométrie des cartes et les conversions de coordonnées.
Constructeurs
Constructeur
ts
new MapGeometryUtils(): MapGeometryUtils;Retourne
MapGeometryUtils
Méthodes
distance()
ts
static distance(p1, p2): number;Défini dans: features/map/MapGeometryUtils.ts:26
Calcule la distance euclidienne entre deux points.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
p1 | { x: number; y: number; } | Premier point. |
p1.x | number | - |
p1.y | number | - |
p2 | { x: number; y: number; } | Deuxième point. |
p2.x | number | - |
p2.y | number | - |
Retourne
number
La distance euclidienne.
distanceToSegment()
ts
static distanceToSegment(
p,
a,
b): number;Défini dans: features/map/MapGeometryUtils.ts:37
Calcule la distance la plus courte entre un point P et un segment de droite AB.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
p | { x: number; y: number; } | Le point P. |
p.x | number | - |
p.y | number | - |
a | { x: number; y: number; } | L'extrémité A du segment. |
a.x | number | - |
a.y | number | - |
b | { x: number; y: number; } | L'extrémité B du segment. |
b.x | number | - |
b.y | number | - |
Retourne
number
La distance la plus courte.
isPointInPolygon()
ts
static isPointInPolygon(pt, poly): boolean;Défini dans: features/map/MapGeometryUtils.ts:55
Vérifie si un point se trouve à l'intérieur d'un polygone à l'aide de l'algorithme de lancer de rayons (Ray Casting).
Paramètres
| Paramètre | Type | Description |
|---|---|---|
pt | { x: number; y: number; } | Le point à tester. |
pt.x | number | - |
pt.y | number | - |
poly | object[] | Les sommets du polygone. |
Retourne
boolean
Vrai si le point est à l'intérieur, faux sinon.
toPxX()
ts
static toPxX(percent, width): number;Défini dans: features/map/MapGeometryUtils.ts:74
Convertit un pourcentage X relatif en valeur pixel en fonction de la largeur.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
percent | number | Le pourcentage. |
width | number | La largeur en pixels. |
Retourne
number
La valeur en pixels.
toPxY()
ts
static toPxY(percent, height): number;Défini dans: features/map/MapGeometryUtils.ts:84
Convertit un pourcentage Y relatif en valeur pixel en fonction de la hauteur.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
percent | number | Le pourcentage. |
height | number | La hauteur en pixels. |
Retourne
number
La valeur en pixels.
getPolygonPath()
ts
static getPolygonPath(
poly,
width,
height): string;Défini dans: features/map/MapGeometryUtils.ts:96
Génère la chaîne de caractères de l'attribut SVG Path 'd' pour un polygone. Convertit les coordonnées en pourcentage en pixels en utilisant les dimensions fournies.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
poly | object[] | undefined | Sommets du polygone. |
width | number | Largeur de référence. |
height | number | Hauteur de référence. |
Retourne
string
La valeur de l'attribut path.
closestPointOnPolygonBorder()
ts
static closestPointOnPolygonBorder(
p,
poly,
width,
height): object;Défini dans: features/map/MapGeometryUtils.ts:122
Trouve le point le plus proche sur le bord du polygone par rapport à un point donné. Retourne la coordonnée dans la même unité que l'entrée (pixels).
Paramètres
| Paramètre | Type | Description |
|---|---|---|
p | { x: number; y: number; } | Le point de départ. |
p.x | number | - |
p.y | number | - |
poly | object[] | Le polygone. |
width | number | Largeur pour la conversion en pixels. |
height | number | Hauteur pour la conversion en pixels. |
Retourne
object
Le point le plus proche en pixels.
| Name | Type | Défini dans |
|---|---|---|
x | number | features/map/MapGeometryUtils.ts:127 |
y | number | features/map/MapGeometryUtils.ts:127 |
outlineContours()
ts
static outlineContours(
polygons,
points,
pointRadius,
marginPx,
smoothingPx?): object[][];Défini dans: features/map/MapGeometryUtils.ts:165
Calcule le(s) contour(s) englobant un ensemble de polygones et de points, à marginPx de distance, avec une fermeture morphologique de rayon smoothingPx qui supprime les changements de direction courts (renfoncements/protubérances étroits) et arrondit les coins, sans jamais entrer dans les formes (la fermeture est extensive : le résultat contient toujours les formes dilatées de la marge). Rastérisation + morphologie + suivi de frontière sur grille.
Paramètres
| Paramètre | Type | Default value | Description |
|---|---|---|---|
polygons | object[][] | undefined | Polygones pleins (sommets en pixels). |
points | object[] | undefined | Points isolés (pixels) traités comme des disques de rayon pointRadius. |
pointRadius | number | undefined | Rayon des disques associés aux points isolés (pixels). |
marginPx | number | undefined | Marge entre les formes et le contour (pixels). |
smoothingPx | number | 0 | Rayon de fermeture : seuil de la « durée » minimale d'un virage (pixels). |
Retourne
object[][]
Un ou plusieurs anneaux fermés (pixels), lissés. Vide si aucune forme.
computeOutlineBounds()
ts
private static computeOutlineBounds(
polygons,
points,
pointRadius): OutlineBounds | null;Défini dans: features/map/MapGeometryUtils.ts:215
Boîte englobante de toutes les formes (polygones + disques des points). Null si rien.
Paramètres
| Paramètre | Type |
|---|---|
polygons | object[][] |
points | object[] |
pointRadius | number |
Retourne
OutlineBounds | null
gridIdx()
ts
private static gridIdx(
r,
c,
cols): number;Défini dans: features/map/MapGeometryUtils.ts:240
Indice plat d'une cellule de grille.
Paramètres
| Paramètre | Type |
|---|---|
r | number |
c | number |
cols | number |
Retourne
number
gridIn()
ts
private static gridIn(
r,
c,
rows,
cols): boolean;Défini dans: features/map/MapGeometryUtils.ts:245
Vrai si (r,c) est dans les bornes de la grille.
Paramètres
| Paramètre | Type |
|---|---|
r | number |
c | number |
rows | number |
cols | number |
Retourne
boolean
rasterizeShapes()
ts
private static rasterizeShapes(
polygons,
points,
pointRadius,
bounds,
cell,
rows,
cols): Uint8Array;Défini dans: features/map/MapGeometryUtils.ts:250
Rastérise les formes : cellule pleine si son centre tombe dans un polygone ou un disque.
Paramètres
| Paramètre | Type |
|---|---|
polygons | object[][] |
points | object[] |
pointRadius | number |
bounds | OutlineBounds |
cell | number |
rows | number |
cols | number |
Retourne
Uint8Array
isCellInsideShapes()
ts
private static isCellInsideShapes(
x,
y,
polygons,
points,
r2): boolean;Défini dans: features/map/MapGeometryUtils.ts:274
Teste l'appartenance d'un point à au moins un polygone ou un disque de point.
Paramètres
| Paramètre | Type |
|---|---|
x | number |
y | number |
polygons | object[][] |
points | object[] |
r2 | number |
Retourne
boolean
disk()
ts
private static disk(rad): number[];Défini dans: features/map/MapGeometryUtils.ts:293
Disque structurant (offsets de cellules dans un rayon donné).
Paramètres
| Paramètre | Type |
|---|---|
rad | number |
Retourne
number[]
dilate()
ts
private static dilate(
src,
rows,
cols,
rad): Uint8Array;Défini dans: features/map/MapGeometryUtils.ts:301
Dilatation morphologique au disque de rayon rad (cellules).
Paramètres
| Paramètre | Type |
|---|---|
src | Uint8Array |
rows | number |
cols | number |
rad | number |
Retourne
Uint8Array
erode()
ts
private static erode(
src,
rows,
cols,
rad): Uint8Array;Défini dans: features/map/MapGeometryUtils.ts:318
Érosion morphologique au disque de rayon rad (cellules).
Paramètres
| Paramètre | Type |
|---|---|
src | Uint8Array |
rows | number |
cols | number |
rad | number |
Retourne
Uint8Array
diskFullyInside()
ts
private static diskFullyInside(
src,
r,
c,
o,
rows,
cols): boolean;Défini dans: features/map/MapGeometryUtils.ts:335
Vrai si toutes les cellules du disque centré en (r,c) sont pleines et dans les bornes.
Paramètres
| Paramètre | Type |
|---|---|
src | Uint8Array |
r | number |
c | number |
o | number[] |
rows | number |
cols | number |
Retourne
boolean
isFilled()
ts
private static isFilled(
filled,
rows,
cols,
r,
c): boolean;Défini dans: features/map/MapGeometryUtils.ts:354
Vrai si la cellule (r,c) est pleine (et dans les bornes).
Paramètres
| Paramètre | Type |
|---|---|
filled | Uint8Array |
rows | number |
cols | number |
r | number |
c | number |
Retourne
boolean
traceBoundaryEdges()
ts
private static traceBoundaryEdges(
filled,
rows,
cols): Map<string, [number, number]>;Défini dans: features/map/MapGeometryUtils.ts:359
Suivi de frontière : arêtes dirigées (cellule pleine du même côté) le long des bords.
Paramètres
| Paramètre | Type |
|---|---|
filled | Uint8Array |
rows | number |
cols | number |
Retourne
Map<string, [number, number]>
collectCellEdges()
ts
private static collectCellEdges(
filled,
rows,
cols,
r,
c,
edges): void;Défini dans: features/map/MapGeometryUtils.ts:376
Émet les arêtes de bord d'une cellule pleine (côtés adjacents à du vide).
Paramètres
| Paramètre | Type |
|---|---|
filled | Uint8Array |
rows | number |
cols | number |
r | number |
c | number |
edges | Map<string, [number, number]> |
Retourne
void
stitchEdgeLoops()
ts
private static stitchEdgeLoops(
edges,
minX,
minY,
cell): object[][];Défini dans: features/map/MapGeometryUtils.ts:391
Recolle les arêtes dirigées en boucles fermées (en coordonnées pixel).
Paramètres
| Paramètre | Type |
|---|---|
edges | Map<string, [number, number]> |
minX | number |
minY | number |
cell | number |
Retourne
object[][]
dropCollinear()
ts
private static dropCollinear(poly): object[];Défini dans: features/map/MapGeometryUtils.ts:416
Supprime les sommets colinéaires d'un polygone fermé (réduit fortement le nombre de points).
Paramètres
| Paramètre | Type |
|---|---|
poly | object[] |
Retourne
object[]
chaikin()
ts
static chaikin(poly): object[];Défini dans: features/map/MapGeometryUtils.ts:434
Lissage de Chaikin (un passage) sur un polygone fermé : arrondit les marches d'escalier du suivi de grille en remplaçant chaque sommet par deux points aux quarts de chaque arête.
Paramètres
| Paramètre | Type |
|---|---|
poly | object[] |
Retourne
object[]
closestPointOnSegment()
ts
static closestPointOnSegment(
p,
a,
b): object;Défini dans: features/map/MapGeometryUtils.ts:456
Fonction utilitaire : trouve le point le plus proche du point P sur le segment AB.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
p | { x: number; y: number; } | Le point P. |
p.x | number | - |
p.y | number | - |
a | { x: number; y: number; } | L'extrémité A du segment. |
a.x | number | - |
a.y | number | - |
b | { x: number; y: number; } | L'extrémité B du segment. |
b.x | number | - |
b.y | number | - |
Retourne
object
Le point le plus proche sur le segment AB.
| Name | Type | Défini dans |
|---|---|---|
x | number | features/map/MapGeometryUtils.ts:460 |
y | number | features/map/MapGeometryUtils.ts:460 |
polygonCentroid()
ts
static polygonCentroid(poly): object;Défini dans: features/map/MapGeometryUtils.ts:474
Calcule le centroïde (centre de masse) d'un polygone fermé via la formule de Shoelace. Replie sur la moyenne des sommets si l'aire est dégénérée (polygone plat).
Paramètres
| Paramètre | Type | Description |
|---|---|---|
poly | object[] | Sommets du polygone. |
Retourne
object
Le centroïde, dans la même unité que l'entrée.
| Name | Type | Défini dans |
|---|---|---|
x | number | features/map/MapGeometryUtils.ts:474 |
y | number | features/map/MapGeometryUtils.ts:474 |
signedDistToPolygon()
ts
private static signedDistToPolygon(pt, poly): number;Défini dans: features/map/MapGeometryUtils.ts:505
Distance signée d'un point au polygone : positive à l'intérieur, négative à l'extérieur ; en valeur absolue, la distance au bord le plus proche.
Paramètres
| Paramètre | Type |
|---|---|
pt | { x: number; y: number; } |
pt.x | number |
pt.y | number |
poly | object[] |
Retourne
number
labelAnchor()
ts
static labelAnchor(poly, precision?): object;Défini dans: features/map/MapGeometryUtils.ts:526
Point d'ancrage optimal pour une étiquette : le « pôle d'inaccessibilité » du polygone, c'est-à-dire le point intérieur le plus éloigné de tous les bords, calculé par subdivision en quadrants (algorithme polylabel simplifié). Pour un carré/cercle il coïncide avec le centre ; pour une forme concave ou allongée (L, U, couloir) il reste BIEN À L'INTÉRIEUR et dégagé, là où le simple centroïde déborderait. Unités identiques à l'entrée (pourcentages du plan).
Paramètres
| Paramètre | Type | Default value | Description |
|---|---|---|---|
poly | object[] | undefined | undefined | Sommets du polygone. |
precision | number | 0.3 | Seuil d'arrêt de la subdivision (même unité que les coordonnées). |
Retourne
object
Le point d'ancrage.
| Name | Type | Défini dans |
|---|---|---|
x | number | features/map/MapGeometryUtils.ts:529 |
y | number | features/map/MapGeometryUtils.ts:529 |
polygonBounds()
ts
private static polygonBounds(poly): OutlineBounds;Défini dans: features/map/MapGeometryUtils.ts:560
Boîte englobante d'un polygone (toutes coordonnées).
Paramètres
| Paramètre | Type |
|---|---|
poly | object[] |
Retourne
OutlineBounds
refineLabelCell()
ts
private static refineLabelCell(
queue,
initialBest,
precision,
makeCell): LabelCell;Défini dans: features/map/MapGeometryUtils.ts:578
Subdivision en quadrants (polylabel) : extrait à chaque tour la cellule au plus fort potentiel, met à jour le meilleur point connu et subdivise tant que le potentiel peut encore le battre.
Paramètres
| Paramètre | Type |
|---|---|
queue | LabelCell[] |
initialBest | LabelCell |
precision | number |
makeCell | (x, y, half) => LabelCell |
Retourne
LabelCell
labelAnchorTopLeft()
ts
static labelAnchorTopLeft(poly): object;Défini dans: features/map/MapGeometryUtils.ts:619
Point d'ancrage pour une étiquette dans l'angle supérieur GAUCHE de la zone : le SOMMET le plus proche du coin haut-gauche de la bounding box (distance L1), c'est-à-dire le coin haut-gauche réel de la zone, quelle que soit la forme ou le rapport hauteur/largeur. Le léger retrait pour ne pas chevaucher le bord N'est PAS appliqué ici (il le serait en % du plan et grandirait avec le zoom) : il est délégué au rendu, exprimé relativement à la taille de l'étiquette. Unités = entrée (% du plan).
Paramètres
| Paramètre | Type | Description |
|---|---|---|
poly | object[] | undefined | Sommets du polygone. |
Retourne
object
Le coin haut-gauche de la zone.
| Name | Type | Défini dans |
|---|---|---|
x | number | features/map/MapGeometryUtils.ts:620 |
y | number | features/map/MapGeometryUtils.ts:621 |