{"id":369,"date":"2026-01-19T14:04:26","date_gmt":"2026-01-19T14:04:26","guid":{"rendered":"http:\/\/www.pyreneisme.ovh\/?page_id=369"},"modified":"2026-02-14T16:32:15","modified_gmt":"2026-02-14T16:32:15","slug":"sommets","status":"publish","type":"page","link":"https:\/\/www.pyreneisme.ovh\/index.php\/sommets\/","title":{"rendered":"Sommets"},"content":{"rendered":"\n<p><a href=\"http:\/\/www.pyreneisme.ovh\/index.php\/les-3000-des-pyrenees\/\" data-type=\"page\" data-id=\"1257\">Les 3000 des Pyr\u00e9n\u00e9es<\/a><\/p>\n\n\n\n<p><a href=\"http:\/\/www.pyreneisme.ovh\/index.php\/proeminence-top-50\/\" data-type=\"page\" data-id=\"1132\">Top 50 par pro\u00e9minence<\/a><\/p>\n\n\n<div id=\"sommets_map_9281\" style=\"height: 520px; width:100%; border-radius:12px; overflow:hidden; background:#f3f3f3;\"><\/div><script>\n  (function(){\n    console.log('[sommets_map] init for sommets_map_9281');\n\n    function start(){\n      var el = document.getElementById(\"sommets_map_9281\");\n      if(!el){ console.warn('[sommets_map] container not found'); return; }\n\n      if(typeof L === 'undefined'){\n        console.warn('[sommets_map] Leaflet not loaded (L undefined)');\n        return;\n      }\n\n      var focusId   = 239;\n      var focusLat  = 42.6311;\n      var focusLon  = 0.6566;\n      var focusZoom = 9;\n      var openPopup = false;\n\n      console.log('[sommets_map] focus_id=', focusId, 'focusLatLon=', focusLat, focusLon);\n\n      \/\/ Vue initiale : si on a focusLat\/Lon, on centre tout de suite\n      var map = (focusLat !== null && focusLon !== null)\n        ? L.map(el, { scrollWheelZoom:false }).setView([focusLat, focusLon], focusZoom)\n        : L.map(el, { scrollWheelZoom:false }).setView([45.0, 2.0], 7);\n\n      L.tileLayer('https:\/\/{s}.tile.opentopomap.org\/{z}\/{x}\/{y}.png', {\n        maxZoom: 17,\n        attribution: '\u00a9 OpenStreetMap contributors | \u00a9 OpenTopoMap (CC-BY-SA)'\n      }).addTo(map);\n\n      var layer = (typeof L.markerClusterGroup === 'function') ? L.markerClusterGroup() : L.layerGroup();\n\n      fetch(\"https:\\\/\\\/www.pyreneisme.ovh\\\/?rest_route=\\\/sommets\\\/v1\\\/all\", { credentials:'same-origin' })\n        .then(function(r){ if(!r.ok) throw new Error('HTTP '+r.status); return r.json(); })\n        .then(function(points){\n          console.log('[sommets_map] points received:', (points||[]).length);\n\n          var bounds = [];\n          var focusMarker = null;\n\n          (points||[]).forEach(function(p){\n            if(!p || typeof p.lat !== 'number' || typeof p.lon !== 'number') return;\n\n            var m = L.marker([p.lat, p.lon]);\n            var title = (p.title||'').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;');\n            var url = p.url || '#';\n            m.bindPopup('<strong>'+title+'<\/strong><br><a href=\"'+url+'\">Ouvrir la page<\/a>');\n\n            layer.addLayer(m);\n            bounds.push([p.lat,p.lon]);\n\n            \/\/ Si on a focus_id, on rep\u00e8re le marker correspondant (pour popup)\n            if(focusId && Number(p.id) === Number(focusId)){\n              focusMarker = m;\n            }\n          });\n\n          layer.addTo(map);\n\n          \/\/ Si focusLat\/Lon existe, on force un setView (au cas o\u00f9)\n          if(focusLat !== null && focusLon !== null){\n            map.setView([focusLat, focusLon], focusZoom, { animate:true });\n\n            \/\/ Ouvrir le popup du marker si on l'a trouv\u00e9 dans la liste\n            if(openPopup && focusMarker){\n              if(layer.zoomToShowLayer){\n                layer.zoomToShowLayer(focusMarker, function(){ focusMarker.openPopup(); });\n              } else {\n                focusMarker.openPopup();\n              }\n            }\n            return;\n          }\n\n          \/\/ Sinon fitBounds comme avant\n          if(false && bounds.length){\n            map.fitBounds(bounds, { padding:[20,20] });\n          }\n        })\n        .catch(function(err){\n          console.warn('[sommets_map] fetch error:', err);\n        });\n\n      map.on('click', function(){ map.scrollWheelZoom.enable(); });\n    }\n\n    if(document.readyState === 'loading'){\n      document.addEventListener('DOMContentLoaded', function(){ setTimeout(start, 50); });\n    } else {\n      setTimeout(start, 50);\n    }\n  })();\n  <\/script>\n","protected":false},"excerpt":{"rendered":"<p>Les 3000 des Pyr\u00e9n\u00e9es Top 50 par pro\u00e9minence<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-369","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/pages\/369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/comments?post=369"}],"version-history":[{"count":13,"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/pages\/369\/revisions"}],"predecessor-version":[{"id":1259,"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/pages\/369\/revisions\/1259"}],"wp:attachment":[{"href":"https:\/\/www.pyreneisme.ovh\/index.php\/wp-json\/wp\/v2\/media?parent=369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}