<!doctype html> <html lang="fr"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Piknik | Aires de pique-nique - Localisation & Services</title> <script type="text/javascript"> window.bubble_session_uid = '1743780198492x887238277276515300'; </script> <script type="text/javascript"> window.headers_source_maps = [["plugin_main_headers_1524851204121x249226307516235780",217,218],["plugin_main_headers_1599995578736x177952455708377100",219,232],["plugin_main_headers_1680110374647x249108010620944400",233,364],["plugin_main_headers_1692959010232x887536901462425600",365,369]] </script> <script type="text/javascript"> function make_proxy(target, name) { return new Proxy(target, { get: function(target, prop) { if (prop in target) { return target[prop]; } throw new Error('The variable ' + name + ' is not fully initialized yet'); } }); } window.appquery = make_proxy({ app_version: function() { return "live"; }, last_change: function() { return "24440173976";}, }, 'appquery'); window.Lib = new Proxy(function() {}, { get: function(target, prop) { if (prop === 'is_skeleton') { return true; } throw new Error('The variable ' + Lib + ' is not fully initialized yet'); }, apply: function() { return make_proxy({ current_user: function() { return make_proxy({ id: "1743780198492x887238277276515300" }, 'Lib().current_user'); } }, 'Lib()'); } }); </script> <script type="text/javascript"> function load_error_function (event) { return window.load_error_log.push({ msg: event.message, error_url: event.filename, line: event.lineno, col: event.colno }) } window.load_error_log = []; window.addEventListener('error', load_error_function); window.disableLoadErrorFunction = function () { window.removeEventListener('error', load_error_function); } </script> <meta name="referrer" content="origin"> <script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['pre_early_js'] = Date.now(); </script><script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/early_js/05ae9fe83d6b755291132aab9d325d70918aafd336da1bd91a41a31c8b25734b/early.js"></script><script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['post_early_js'] = Date.now(); </script> <script type="text/javascript">(function () { function onWebFontFinish () { window.google_web_fonts_active = true; if (window.google_web_fonts_active_cb) { window.google_web_fonts_active_cb(); } (function fontface_loaded_snippet (font) { if (window.fontface_loaded == null) { window.fontface_loaded = {} } if (font != null) { window.fontface_loaded[font] = true } else { window.all_fontface_loaded = true } if (window.fontface_webfonts_loaded_cb) { return window.fontface_webfonts_loaded_cb(font) } })() } const WebFontConfig = {'google': { families: ["Open Sans:regular","Open Sans:regular","Open Sans:500","Open Sans:600","Open Sans:600","Open Sans:700","Solitreo:regular","Solitreo:400","Solitreo:400"] }, active: function() { onWebFontFinish() }, inactive: function() { console.log('Failed to load all the fonts'); onWebFontFinish() }, fontinactive: function(family_name, fvd) { console.log('fontinactive being called for ' + family_name + ', Google says the fonts didnt render'); onWebFontFinish() } } window.WebFont.load(WebFontConfig); })();</script> <script> (function initialize_data() { const xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { const data = JSON.parse(this.responseText); function init_data() { data.forEach(function(d) { Lib().db_instance().initialize_data(d.id, d.data, d.type, d.version); }) } if (window.Lib && window.Lib.is_skeleton == null) { init_data(); } else { window.Lib_post_load = init_data; } } }; xhr.open("GET", "https://piknik.fr/api/1.1/init/data?location=" + encodeURIComponent(window.location.href), true); xhr.send(); })(); </script> <script type="text/javascript">window.gm_key = "AIzaSyD6m8aHpgCOK4mdurjXi6WMAvlQOR9Gx64";</script> <script type="text/javascript">window.glrl_key_status = false;</script> <script type="text/javascript">window.bubble_page_load_id = "1743780198539x812";</script> <script type="text/javascript">window.bubble_plp_token = "GSdsDWxY4jddhRxhoDUln05VAK/fU+cDyPspuHe6h7I=";</script> <script type="text/javascript">window.bubble_is_leanjs = false;</script> <script type="text/javascript">window.bubble_shim_modules = true;</script> <script type="text/javascript">window.bubble_new_reactivity = false;</script> <link rel="icon" type="image/png" href="https://b432b39a937b4779ad5b169f1511d3fe.cdn.bubble.io/cdn-cgi/image/w=128,h=,f=auto,dpr=1,fit=contain/f1722273628398x872121583461253900/piknik-60px.png" /> <meta name="fragment" content="!"> <meta name="description" content="Trouvez facilement des aires de pique-nique près de chez vous avec Piknik ! Tables, eau, toilettes… Explorez, ajoutez et partagez les meilleurs spots"> <link rel="canonical" href="https://piknik.fr/"/> <meta property="og:title" content="Aire de Pique-nique endroit ou pique niquer" /> <meta name="twitter:title" content="Aire de Pique-nique endroit ou pique niquer" /> <meta property="og:site_name" content="Piknik - aire de pique-nique" /> <meta name="twitter:site_name" content="Piknik - aire de pique-nique" /> <meta property="og:description" content="Trouvez facilement des aires de pique-nique près de chez vous avec Piknik ! Tables, eau, toilettes… Explorez, ajoutez et partagez les meilleurs spots" /> <meta name="twitter:description" content="Trouvez facilement des aires de pique-nique près de chez vous avec Piknik ! Tables, eau, toilettes… Explorez, ajoutez et partagez les meilleurs spots" /> <link rel="image_src" href="https://b432b39a937b4779ad5b169f1511d3fe.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1723633507874x380760709736549760/piknik.png" /> <meta property="og:image" content="https://b432b39a937b4779ad5b169f1511d3fe.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1723633507874x380760709736549760/piknik.png" /> <meta name="twitter:image:src" content="https://b432b39a937b4779ad5b169f1511d3fe.cdn.bubble.io/cdn-cgi/image/w=,h=,f=auto,dpr=1,fit=contain/f1723633507874x380760709736549760/piknik.png" /> <meta property="og:url" content="https://piknik.fr/" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary_large_image" /> <link rel="apple-touch-icon" href="https://b432b39a937b4779ad5b169f1511d3fe.cdn.bubble.io/cdn-cgi/image/w=192,h=,f=auto,dpr=1,fit=contain/f1722273593843x855956596392661900/piknik-60px.png"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <script type="text/javascript">window._p = '{"id":"app_starter_2023","no_branding":true,"import_export_csv":true,"custom_domain":true}';</script> <script type="text/javascript">window.bubble_page_name = "index";</script> <script type="text/javascript">window.__bubble_module_mode = false;</script> <link type="text/css" href="/package/run_css/5976bb1d01ee85c4b29095bf248598fa3f1ab45bf164643536ad7dc69f51fdf2/piknik-84006/live/index/xfalse/xfalse/run.css" rel="stylesheet"> <script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['pre_run_js'] = Date.now(); </script> <script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/pre_run_jquery_js/dee903a9e36db713e4c86d0cdd96d921e37be0c1293ed8dee29e2e4d7713b9ff/pre_run_jquery.js"></script> <script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/run_js/2769135d7a30057583b444a80d2b4d65f2728c6bda0aff67b5a4181aa3cc5d48/xtrue/x30/run.js"></script> <script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['post_run_js'] = Date.now(); </script> <script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['pre_static_js'] = Date.now(); </script><script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/static_js/3f1d04a8532dc0c545fb40c315c8e47260dc0880b99da696a502ddb83427cf08/piknik-84006/live/index/xnull/xfalse/xfalse/xtrue/static.js"></script><script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['post_static_js'] = Date.now(); </script> <script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['pre_dynamic_js'] = Date.now(); </script><script type="text/javascript" crossorigin="anonymous" charset="UTF-8" src="/package/dynamic_js/234b78521ad3d7cdd70ac1f5d550262824d3a11c23741fc2ef190d9f0e732ef2/piknik-84006/live/index/xnull/xfalse/xtrue/fr_fr/xfalse/xfalse/dynamic.js"></script><script type="text/javascript"> if (!window._bubble_page_load_data) { window._bubble_page_load_data = {} } if (!window._bubble_page_load_data.js_execution_timings) { window._bubble_page_load_data.js_execution_timings = {} } window._bubble_page_load_data.js_execution_timings['post_dynamic_js'] = Date.now(); </script> <script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_start_execution = Date.now();</script> <!-- 1524851204121x249226307516235780 --> <script src="//b432b39a937b4779ad5b169f1511d3fe.cdn.bubble.io/f1524852433168x992834718199446800/countUp.js"></script> <!-- 1599995578736x177952455708377100 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11.1.4/swiper-bundle.min.css"/> <script src="https://cdn.jsdelivr.net/npm/swiper@11.1.4/swiper-bundle.min.js"></script> <style> .swiper-fade .swiper-slide:not(.swiper-slide-active){ opacity: 0 !important; } </style> <script src="https://cdn.jsdelivr.net/npm/eruda"></script> <script> const urlParams = new URLSearchParams(window.location.search); if (urlParams.get('console') === 'true') { eruda.init(); } </script> <!-- 1680110374647x249108010620944400 --> <script type="module" src="https://cdn.jsdelivr.net/npm/citizendev-bubble-utils@latest/dist/index.js"></script> <style> *, *::after, *::before { box-sizing: border-box; } /* Because Bubble's default Radio button depends on box-sizing: content-box to looks correct, this is some manual patches */ .RadioButtons.radio label::before { width: 18px; height: 18px; margin-top: 0px !important; top: 50% !important; transform: translateY(-50%) !important; } .RadioButtons.radio label::after { width: 10px; height: 10px; margin-top: 0; left: 4px; top: 50%; transform: translateY(-50%) scale(0, 0) !important; } .RadioButtons.radio input[type="radio"]:checked + label::after { transform: translateY(-50%) scale(1, 1) !important; } </style> <style id="override-default-checkbox" media="max-width: 1px"> /* This code is generated with the following SCSS code: https://sass-lang.com/playground/#eJylV21zozYQ/mz/CjXX1ElriCQECGfy4c7tTT+kf+A6nRsBwtYEAwNynKST/96VAMd2sM+9iz0e7bIvz75olxDycyySh0VdrovUScq8rL+SGXoU9ZXjJC9OspTJQ1w+OfHCKYsp+uBFnz6GwfXt+L0eHdJbiiLNZSvRWvhs/wYteEc8qyKVWtYrVQgtwcTHz+YzaIJ9E8ShsRN4/CN4UtWIOJcpaP8ems+gdvBNKDt2tijGbryOgenIXK5kod15p4pyEcsc/TtG6FHWWiUid0SuFsUMrVQKRtFPalWVtRaFvh2/njCkimqt/9bPlbzrcf1j7SJkIDbqRRWLGZzrVNYOsG7Ho41K9XKGKK4MtZRqsdRbsiobpVUJSGqZC60eJTDf8jFDRVnswxuVa52rQraPjLR1tiVXol4osIcRr57gF99aeMOBGwQiTS1oEBw5q/LFEVUlRS2K5M2Hs5Hxg9KDj8ohrgayjwy7tDGCbSkB34PTPILDdZ1fXaRCi5laiYW8AeZvT6t8eunN4Ygyled3E2NvgoBdNHeTpdbV7OZms9m4G88t68UNxRgbxQl6VHLzqXy6m0DILkeEosjFdHLp/QH2KqGXKL2b/EUATOQh4mIeYHLPUOh6YQQn4oY4RH7LnxPXJ5wh5kbY4z6I08DnQHLs4cBoYy+wpO+xOXZDRhj2LSMMCPhnEfYjavQJDTkwPGwNgv2IkwhUCInCMAAG5WAKu5iwAIcUGGCSEcuhHuUcOGEUBGRuOBj72EOBi33OjQwhmDMfGB4hVgmCw1bCh8SQe89GG7XU3HOZQQx0wEPGkeeGHgNUEXigEF53mDMTLgm3fEhGxMKtGrOp6ozekzZztPMBJOcQOu0gAR1FQLWIDcXDEDLYxmRpnwHdRm21MTUJN2kBMojAI+nSBrSPIwZx2rx6RoD63OTPZh4MwaMoYJbhe14wBwYESS0DihAaCcaJUbG1pWi/Jb5MusaLc7iFXfvcmP7pjtBscLq4th3dzaRz2vn/tDAknQBEeIIo223hFlqyrmsYS3MzCSe2ranRoFxA18MXbgAijj3/yfAuE2GHsiUJgz2mPX85GasZIQfDvJ1x3XQjZpodFbIze4Y+8IxnUXpCsBapWjczxI6YM6t0uxvsqqhqyHb9/DWVmVjnehjqwR78Lgv9xoFJvYjF1QkLX0HgegoN5g/aOtjrw2CSsoAR2uiTqLaj+0S6smzfQbOuM5HIA7vj9jv6ZRbLrKxlt9NO7rURtGFjylqVqoDcGtbgOhtB6qpcPIN+XiYPhqPLql04o1xmujv2rYTxpSH7TdnTJiXQ9TN0cWHI3SU5/NKVZVO7jq6teLclB0R3GhmqVj1do6bMVXpc1GZyiuyOq4S5ijsutj18VL0VmJqqWb3dXXn4KtQvz9euPCKDTP94dUQMIa71fnW61d0Wx2+T3panIyxQaI/VrI0dKiyvHHg4RebXBrMSzYNjB+A2A7tb38r0bxPnyFqZN+CJ7IPZMzIk0PcPvPQkV6aJkDNQk+4OdYX/FdFBqYEeAVELUDSVTDQUFfxDsx4WtKvfYfda1LWE9yZtEt8d38U1JNG3ggUnU2iG0e69He1ejX7yDvyrYny9WtW+p0ZDN/UsY7Qz1kPbm7bfCdA7F+D7LnrbyrZCJ/rtUPIcYOwg2H4xDMTZ38GihFfnPC83Mj3bjT8Y/49YDLbAX/8DF/tkvA== */ .bubble-element.Checkbox label { vertical-align: middle !important; } .bubble-element.Checkbox input[type=checkbox] { box-sizing: border-box; width: 20px; height: 20px; position: relative; background: none !important; outline: none; border: none; margin: 0 8px 0 0; vertical-align: middle; padding: 0; -moz-appearance: none; -webkit-appearance: none; -o-appearance: none; transition: 0.2s; --checkmark-svg: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0.8 12 9.02'%3E%3Cpath d='M10.293 1.08601L4 7.37901L1.707 5.08601C1.5184 4.90385 1.2658 4.80306 1.0036 4.80534C0.741405 4.80761 0.490592 4.91278 0.305184 5.09819C0.119776 5.2836 0.0146072 5.53441 0.0123288 5.79661C0.0100503 6.05881 0.110845 6.31141 0.293003 6.50001L3.293 9.50001C3.48053 9.68748 3.73484 9.7928 4 9.7928C4.26517 9.7928 4.51947 9.68748 4.707 9.50001L11.707 2.50001C11.8892 2.31141 11.99 2.05881 11.9877 1.79661C11.9854 1.53441 11.8802 1.2836 11.6948 1.09819C11.5094 0.912783 11.2586 0.807614 10.9964 0.805336C10.7342 0.803057 10.4816 0.903852 10.293 1.08601Z' fill='black'%3E%3C/path%3E%3C/svg%3E"); --handle-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='28 116 200 24'%3E%3Cpath fill='currentColor' d='M228 128a12 12 0 0 1-12 12H40a12 12 0 0 1 0-24h176a12 12 0 0 1 12 12Z'%3E%3C/path%3E%3C/svg%3E"); --cz-checkbox-border-width: 1px; --cz-checkbox-border-color: #8f8f9d; --cz-checkbox-border-radius: 4px; --cz-checkbox-bg-on: var(--color_primary_default); --cz-checkbox-bg-indeterminate: var(--color_primary_default); --cz-checkbox-bg-disabled: rgba(var(--color_primary_default_rgb), 0.5); --cz-checkbox-handle-color-on: var(--color_primary_contrast_default); --cz-checkbox-padding: 4px; --cz-checkbox-bg-off: var(--color_surface_default); } .bubble-element.Checkbox input[type=checkbox]:before { box-sizing: border-box; cursor: pointer; position: relative; display: block; top: 0; left: 0; width: 100%; height: 100%; content: ""; background: var(--cz-checkbox-bg-off, none); border: var(--cz-checkbox-border-width, 0px) solid var(--cz-checkbox-border-color, transparent); border-radius: var(--cz-checkbox-border-radius, 4px); transition: background-color 0.2s; } .bubble-element.Checkbox input[type=checkbox]:after { box-sizing: border-box; cursor: pointer; position: absolute; display: none; top: 50%; left: 50%; transform: translate(-50%, -50%); mask-image: var(--checkmark-svg); -webkit-mask-image: var(--checkmark-svg); mask-position: center; -webkit-mask-position: center; height: calc(100% - var(--cz-checkbox-padding, 0px) * 2 - var(--cz-checkbox-border-width, 0px) * 2); aspect-ratio: 1; transition: 0.2s; content: ""; mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat; } .bubble-element.Checkbox input[type=checkbox]:checked:before { background-color: var(--cz-checkbox-bg-on, #39BA76); } .bubble-element.Checkbox input[type=checkbox]:checked:after { display: block; background-color: var(--cz-checkbox-handle-color-on, #FFFFFF); } .bubble-element.Checkbox input[type=checkbox]:indeterminate:before { background-color: var(--cz-checkbox-bg-indeterminate, #AFAFAF); } .bubble-element.Checkbox input[type=checkbox]:indeterminate:after { display: block; mask-image: var(--handle-svg); -webkit-mask-image: var(--handle-svg); background-color: var(--cz-checkbox-handle-color-indeterminate, #FFFFFF); } .bubble-element.Checkbox input[type=checkbox]:disabled:before { cursor: not-allowed; background-color: var(--cz-checkbox-bg-disabled, #D7D7D7); } .bubble-element.Checkbox input[type=checkbox]:disabled:after { cursor: not-allowed; background-color: var(--cz-checkbox-handle-color-disabled, #FFFFFF); } </style> <script> const overrideFlag = "".toLowerCase(); const overrideDefaultCheckbox = ["true", "yes", "enabled"].includes(overrideFlag); if (overrideDefaultCheckbox) { const styleEl = document.getElementById("override-default-checkbox"); if(styleEl.hasAttribute('media')) { styleEl.removeAttribute('media'); } } </script> <!-- 1692959010232x887536901462425600 --> <script type='module'> import {trackPluginUsage} from 'https://pluginpul.se/initialize.min.js' trackPluginUsage('1692959010232x887536901462425600'); </script> <script type="text/javascript">window._bubble_page_load_data.js_execution_timings.plugin_js_end_execution = Date.now();</script> </head> <body><script type="text/javascript"> window.addEventListener('DOMContentLoaded', function () { if (window.appquery == null) { const css = document.createElement('style'); css.type='text/css'; css.appendChild(document.createTextNode(".warning-message-failure {padding: 30px; line-height: 1.5; white-space: pre; z-index: 1000000; position: fixed; width: 100%; height: 100%; background: white;}")); document.getElementsByTagName("head")[0].appendChild(css); const newDiv = document.createElement("div"); newDiv.className = "warning-message-failure"; newDiv.innerHTML = "Your browser was unable to load some necessary resources, contact your IT network administrator and ask them to allow access to <br><br> d3dqmih97rcqmh.cloudfront.net <br> b432b39a937b4779ad5b169f1511d3fe.cdn.bubble.io/ <br> d1muf25xaso8hp.cloudfront.net"; document.body.appendChild(newDiv); httpRequest = new XMLHttpRequest(); httpRequest.open('POST', '/user/m', true); httpRequest.setRequestHeader('Content-Type', 'application/json'); httpRequest.send(JSON.stringify({measures: {page_load_error: 1, url: document.location.href, errors: window.load_error_log}})); }; }); </script><script type="text/javascript">window.addEventListener('DOMContentLoaded', function () {if (window.appquery && window.app == null) {const css = document.createElement('style'); css.type='text/css'; css.appendChild(document.createTextNode(".warning-message-failure {padding: 30px; line-height: 1.5; white-space: pre; z-index: 1000000; position: fixed; width: 100%; height: 100%; background: white;}")); document.getElementsByTagName("head")[0].appendChild(css); const newDiv = document.createElement("div"); newDiv.className = "warning-message-failure"; newDiv.innerHTML = "Your browser was unable to load the application data. We've been notified of the issue. Please try again in a few moments and make sure not to use ad-blockers."; document.body.appendChild(newDiv);}});</script> <img style="display: none;" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /> </body> </html>