Compare commits
3 Commits
79b2ef72a9
...
v2.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 67142428ac | |||
| 84c0363067 | |||
| 70f448a4f7 |
@@ -0,0 +1,2 @@
|
|||||||
|
# Paquet YunoHost (dépôt séparé : ORGANISATION-KA-INTERNATIONALE/jwe_ynh)
|
||||||
|
jwe_ynh/
|
||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "jwe",
|
"name": "jwe",
|
||||||
"version": "2.0.0",
|
"version": "2.0.2",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "jwe",
|
"name": "jwe",
|
||||||
"version": "2.0.0",
|
"version": "2.0.2",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mapillary-js": "^4.1.2",
|
"mapillary-js": "^4.1.2",
|
||||||
"maplibre-gl": "^5.1.0",
|
"maplibre-gl": "^5.1.0",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "jwe",
|
"name": "jwe",
|
||||||
"version": "2.0.0",
|
"version": "2.0.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
let guessMarker: Marker | null = null;
|
let guessMarker: Marker | null = null;
|
||||||
let realMarker: Marker | null = null;
|
let realMarker: Marker | null = null;
|
||||||
let explorerMarkers: Marker[] = [];
|
let explorerMarkers: Marker[] = [];
|
||||||
|
let observateurTaille: ResizeObserver | null = null;
|
||||||
|
|
||||||
const SRC_LIGNE = 'jwe-ligne';
|
const SRC_LIGNE = 'jwe-ligne';
|
||||||
const SRC_PAIRES = 'jwe-paires';
|
const SRC_PAIRES = 'jwe-paires';
|
||||||
@@ -143,7 +144,12 @@
|
|||||||
[Math.min(guess.lon, real.lon), Math.min(guess.lat, real.lat)],
|
[Math.min(guess.lon, real.lon), Math.min(guess.lat, real.lat)],
|
||||||
[Math.max(guess.lon, real.lon), Math.max(guess.lat, real.lat)]
|
[Math.max(guess.lon, real.lon), Math.max(guess.lat, real.lat)]
|
||||||
);
|
);
|
||||||
map.fitBounds(bounds, { padding: 80, duration: reducedMotion ? 0 : 900, maxZoom: 12 });
|
// Le panneau résultat vient de remplacer la photo : synchroniser la
|
||||||
|
// taille du canvas AVANT de calculer le cadrage, sinon il est faussé.
|
||||||
|
// maxZoom 15 (et non 12) : pour un guess proche du lieu, les deux
|
||||||
|
// marqueurs doivent rester distinguables (juger « à quel point on est bon »).
|
||||||
|
map.resize();
|
||||||
|
map.fitBounds(bounds, { padding: 90, duration: reducedMotion ? 0 : 900, maxZoom: 15 });
|
||||||
} else {
|
} else {
|
||||||
map.easeTo({ center: [real.lon, real.lat], zoom: 11, duration: reducedMotion ? 0 : 900 });
|
map.easeTo({ center: [real.lon, real.lat], zoom: 11, duration: reducedMotion ? 0 : 900 });
|
||||||
}
|
}
|
||||||
@@ -316,9 +322,15 @@
|
|||||||
syncExplorerMarkers();
|
syncExplorerMarkers();
|
||||||
if (real) dessinerRevelation();
|
if (real) dessinerRevelation();
|
||||||
});
|
});
|
||||||
|
// MapLibre ne détecte pas seul les changements de taille du conteneur
|
||||||
|
// (panneau résultat qui remplace la photo, rotation d'écran…).
|
||||||
|
observateurTaille = new ResizeObserver(() => map?.resize());
|
||||||
|
observateurTaille.observe(conteneur);
|
||||||
})();
|
})();
|
||||||
return () => {
|
return () => {
|
||||||
detruit = true;
|
detruit = true;
|
||||||
|
observateurTaille?.disconnect();
|
||||||
|
observateurTaille = null;
|
||||||
map?.remove();
|
map?.remove();
|
||||||
map = null;
|
map = null;
|
||||||
};
|
};
|
||||||
@@ -326,7 +338,13 @@
|
|||||||
|
|
||||||
let ancienReal: Coordonnees | null = null;
|
let ancienReal: Coordonnees | null = null;
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
if (!map || !map.loaded()) return;
|
// Lecture inconditionnelle de `real` : au montage la carte n'existe pas
|
||||||
|
// encore, et un retour anticipé avant toute lecture réactive ferait que
|
||||||
|
// Svelte n'enregistre aucune dépendance — l'effet ne serait jamais relancé.
|
||||||
|
// (isStyleLoaded et non loaded : loaded() reste faux pendant le chargement
|
||||||
|
// des tuiles, ce qui ferait rater le dessin juste après un zoom/pan.)
|
||||||
|
void real;
|
||||||
|
if (!map || !map.isStyleLoaded()) return;
|
||||||
if (real && !ancienReal) dessinerRevelation();
|
if (real && !ancienReal) dessinerRevelation();
|
||||||
if (!real && ancienReal) nettoyerRevelation();
|
if (!real && ancienReal) nettoyerRevelation();
|
||||||
ancienReal = real;
|
ancienReal = real;
|
||||||
|
|||||||
Reference in New Issue
Block a user