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

View file

@ -105,12 +105,20 @@
<script src='{{ asset('js/maplibre/maplibre-gl.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>
const request = `{{query_places|raw}}`;
const zip_code = `{{stats.zone}}`;
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) {
if (completion === undefined || completion === null) {
return '#808080'; // Gris pour pas d'information
@ -231,7 +239,6 @@
}
});
}
async function fetchland() {
// Requête pour obtenir le contour administratif
const boundaryQuery = `[out:json][timeout:25];
@ -252,14 +259,11 @@ out skel qt;`;
const response = await fetch(overpassUrl);
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_is_loaded=true;
console.log('map load...');
// Ajouter le contour administratif
if (boundaryData.elements && boundaryData.elements.length > 0) {
@ -430,6 +434,11 @@ out skel qt;`;
return;
}
if (!map_is_loaded) {
alert('La carte n\'est pas encore chargée, veuillez patienter');
return;
}
const nodeIds = [];
const wayIds = [];
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?';
const params = [];
@ -461,8 +482,11 @@ out skel qt;`;
params.push(`relation${relationIds.join(',')}`);
}
// Ajouter la bounding box calculée
params.push(`left=${west}&right=${east}&top=${north}&bottom=${south}`);
josmUrl += params.join('&');
window.open(josmUrl, '_blank');
window.open(josmUrl);
}
document.addEventListener('DOMContentLoaded', function() {