mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-06-20 01:44:42 +02:00
fix josm remote
This commit is contained in:
parent
8bce5fe21c
commit
ef42dba9dd
2 changed files with 57 additions and 17 deletions
|
@ -63,11 +63,14 @@ function openInJOSM(map, map_is_loaded, osmElements) {
|
|||
`select=${selectParams.join(',')}`;
|
||||
|
||||
// Utiliser le bouton caché pour ouvrir JOSM
|
||||
const josmButton = document.getElementById('josmButton');
|
||||
if (!josmButton) {
|
||||
console.error('Le bouton JOSM n\'existe pas dans le DOM');
|
||||
return;
|
||||
}
|
||||
josmButton.href = josmUrl;
|
||||
josmButton.click();
|
||||
}
|
||||
// Créer un élément <a> temporaire
|
||||
const tempLink = document.createElement('a');
|
||||
tempLink.style.display = 'none';
|
||||
document.body.appendChild(tempLink);
|
||||
tempLink.href = josmUrl;
|
||||
|
||||
console.log('josmUrl', josmUrl);
|
||||
tempLink.click();
|
||||
document.body.removeChild(tempLink);
|
||||
|
||||
}
|
||||
|
|
|
@ -116,7 +116,8 @@
|
|||
let mapElements = [];
|
||||
let map_is_loaded = false;
|
||||
let features = [];
|
||||
|
||||
let maplibre;
|
||||
let map;
|
||||
|
||||
function getCompletionColor(completion) {
|
||||
if (completion === undefined || completion === null) {
|
||||
|
@ -239,6 +240,19 @@
|
|||
});
|
||||
}
|
||||
|
||||
function createJOSMQuery(elements){
|
||||
let query = '';
|
||||
elements.forEach(element => {
|
||||
query += `${element.type}${element.id},`;
|
||||
});
|
||||
// Enlever la virgule finale
|
||||
query = query.replace(/,$/, '');
|
||||
console.log('josm query', query);
|
||||
return query;
|
||||
}
|
||||
|
||||
let josm_elements = [];
|
||||
|
||||
async function loadPlaces(map) {
|
||||
map_is_loaded = false;
|
||||
try {
|
||||
|
@ -259,6 +273,8 @@
|
|||
|
||||
// Mettre à jour les cercles
|
||||
features = [];
|
||||
|
||||
josm_elements = [];
|
||||
data.elements.forEach(element => {
|
||||
const lat = element.lat || (element.center && element.center.lat);
|
||||
const lon = element.lon || (element.center && element.center.lon);
|
||||
|
@ -277,6 +293,7 @@
|
|||
center: [lon, lat] // Stocker le centre comme un tableau [lon, lat]
|
||||
};
|
||||
features.push(circle);
|
||||
josm_elements.push(element);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -309,29 +326,49 @@
|
|||
document.getElementById('maploader').classList.add('d-none');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function openJOSMQuery(map, query) {
|
||||
const bounds = map.getBounds();
|
||||
|
||||
const josmUrl = `http://localhost:8111/load_object?` +
|
||||
|
||||
`objects=${query}`;
|
||||
|
||||
// Créer un élément <a> temporaire
|
||||
const tempLink = document.createElement('a');
|
||||
tempLink.style.display = 'none';
|
||||
document.body.appendChild(tempLink);
|
||||
|
||||
console.log('josmUrl', josmUrl);
|
||||
|
||||
tempLink.href = josmUrl;
|
||||
tempLink.click();
|
||||
document.body.removeChild(tempLink);
|
||||
}
|
||||
|
||||
function openInJOSM() {
|
||||
const selectedElements = document.querySelectorAll('input[type="checkbox"]:checked');
|
||||
if (selectedElements.length === 0) {
|
||||
if (josm_elements.length === 0) {
|
||||
alert('Veuillez sélectionner au moins un élément');
|
||||
return;
|
||||
}
|
||||
const query = createJOSMQuery(josm_elements);
|
||||
console.log('map', map);
|
||||
openJOSMQuery(map, query);
|
||||
|
||||
const osmElements = Array.from(selectedElements).map(checkbox => {
|
||||
return JSON.parse(checkbox.value);
|
||||
});
|
||||
|
||||
window.openInJOSM(map, map_is_loaded, osmElements);
|
||||
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
console.log('DOMContentLoaded');
|
||||
|
||||
const map = new maplibregl.Map({
|
||||
maplibre = 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 = maplibre;
|
||||
|
||||
document.getElementById('openInJOSM').addEventListener('click', openInJOSM);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue