local lib chartjs

This commit is contained in:
Tykayn 2025-06-06 12:29:53 +02:00 committed by tykayn
parent 0bf30717a4
commit a17fd9c232
2 changed files with 47 additions and 9 deletions

File diff suppressed because one or more lines are too long

View file

@ -105,12 +105,20 @@
<script src='{{ asset('js/maplibre/maplibre-gl.js') }}'></script> <script src='{{ asset('js/maplibre/maplibre-gl.js') }}'></script>
<script src='{{ asset('js/turf/turf.min.js') }}'></script> <script src='{{ asset('js/turf/turf.min.js') }}'></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script src="{{ asset('js/chartjs/chart.umd.js') }}"></script>
<script> <script>
const request = `{{query_places|raw}}`; const request = `{{query_places|raw}}`;
const zip_code = `{{stats.zone}}`; const zip_code = `{{stats.zone}}`;
let mapElements = []; let mapElements = [];
let map_is_loaded=false;
const map = new maplibregl.Map({
container: 'map',
style: 'https://api.maptiler.com/maps/streets-v2/style.json?key={{ maptiler_token }}',
center: [2.3488, 48.8534],
zoom: 12
});
function getCompletionColor(completion) { function getCompletionColor(completion) {
if (completion === undefined || completion === null) { if (completion === undefined || completion === null) {
return '#808080'; // Gris pour pas d'information return '#808080'; // Gris pour pas d'information
@ -231,7 +239,6 @@
} }
}); });
} }
async function fetchland() { async function fetchland() {
// Requête pour obtenir le contour administratif // Requête pour obtenir le contour administratif
const boundaryQuery = `[out:json][timeout:25]; const boundaryQuery = `[out:json][timeout:25];
@ -252,14 +259,11 @@ out skel qt;`;
const response = await fetch(overpassUrl); const response = await fetch(overpassUrl);
const data = await response.json(); const data = await response.json();
const map = new maplibregl.Map({
container: 'map',
style: 'https://api.maptiler.com/maps/streets-v2/style.json?key={{ maptiler_token }}',
center: [2.3488, 48.8534],
zoom: 12
});
map.on('load', () => { map.on('load', () => {
map_is_loaded=true;
console.log('map load...'); console.log('map load...');
// Ajouter le contour administratif // Ajouter le contour administratif
if (boundaryData.elements && boundaryData.elements.length > 0) { if (boundaryData.elements && boundaryData.elements.length > 0) {
@ -430,6 +434,11 @@ out skel qt;`;
return; return;
} }
if (!map_is_loaded) {
alert('La carte n\'est pas encore chargée, veuillez patienter');
return;
}
const nodeIds = []; const nodeIds = [];
const wayIds = []; const wayIds = [];
const relationIds = []; const relationIds = [];
@ -448,6 +457,18 @@ out skel qt;`;
} }
}); });
// Obtenir les coordonnées du viewport actuel
const center = map.getCenter();
const zoom = map.getZoom();
const width = map.getCanvas().width;
const height = map.getCanvas().height;
// Calculer les limites en utilisant les coordonnées du centre et le zoom
const west = center.lng - (360 / Math.pow(2, zoom + 1)) * (width / 256);
const east = center.lng + (360 / Math.pow(2, zoom + 1)) * (width / 256);
const north = center.lat + (180 / Math.pow(2, zoom + 1)) * (height / 256);
const south = center.lat - (180 / Math.pow(2, zoom + 1)) * (height / 256);
let josmUrl = 'http://localhost:8111/load_and_zoom?'; let josmUrl = 'http://localhost:8111/load_and_zoom?';
const params = []; const params = [];
@ -461,8 +482,11 @@ out skel qt;`;
params.push(`relation${relationIds.join(',')}`); params.push(`relation${relationIds.join(',')}`);
} }
// Ajouter la bounding box calculée
params.push(`left=${west}&right=${east}&top=${north}&bottom=${south}`);
josmUrl += params.join('&'); josmUrl += params.join('&');
window.open(josmUrl, '_blank'); window.open(josmUrl);
} }
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {