{"id":353,"date":"2025-12-11T15:31:24","date_gmt":"2025-12-11T14:31:24","guid":{"rendered":"https:\/\/optimist-international-academy.nl\/?page_id=353"},"modified":"2026-09-03T13:41:14","modified_gmt":"2026-09-03T11:41:14","slug":"contact","status":"publish","type":"page","link":"https:\/\/optimist-international-academy.nl\/ml\/contact\/","title":{"rendered":"\u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d15"},"content":{"rendered":"\n\n\n\n\n<h3 class=\"wp-block-heading has-text-align-left\">If you need to reach a specific contact person:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Head of Primary<\/strong> \u2013 Anne-Marie van Holst<br><strong>Email:<\/strong> <a href=\"mailto:&#97;&#110;&#110;&#101;&#109;&#97;&#114;&#105;&#101;.van&#104;&#111;ls&#116;&#64;&#102;&#108;or&#101;e&#114;&#46;n&#108;\">&#97;nnem&#97;rie.&#118;anhols&#116;&#64;fl&#111;&#114;&#101;e&#114;&#46;&#110;&#108;<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Head of Secondary<\/strong> \u2013 Jon Symmons<br><strong>Email:\u00a0 <\/strong><a href=\"mailto:i&#110;&#102;&#111;&#64;opti&#109;&#105;&#115;&#116;-&#105;&#110;ter&#110;a&#116;&#105;&#111;&#110;&#97;&#108;&#45;s&#99;ho&#111;l&#46;nl\"><a href=\"mailto:j&#46;&#115;y&#109;&#109;&#111;&#110;s&#64;oia&#45;se&#99;&#111;nd&#97;&#114;y&#46;&#110;&#108;\">&#106;.sym&#109;&#111;n&#115;&#64;oia-&#115;&#101;&#99;on&#100;ary&#46;n&#108;<\/a><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Admissions enquiries:<\/strong> Cheryl Embleton <br><strong>Email (Admissions):<\/strong> via <a href=\"https:\/\/optimist-international-school.openapply.com\/\" target=\"_blank\" rel=\"noopener\">OpenApply<\/a> or <a href=\"mailto:&#99;h&#101;&#114;yl&#46;&#101;mbl&#101;t&#111;n&#64;f&#108;o&#114;&#101;er&#46;&#110;&#108;\">c&#104;e&#114;y&#108;.e&#109;b&#108;&#101;&#116;&#111;n&#64;f&#108;&#111;&#114;e&#101;&#114;.nl<\/a> <\/p>\n\n\n<section class=\"block-contact wp-block alignfull\" id=\"block-contact-block_7bec5d8859db781e839122f54c62a9b9\">\n    <div class=\"row align-center\">\n        <div class=\"column large-4 small-12\">\n            <div>\n                                    <h3>One academy, two locations<\/h3>\n                                                                            <div class=\"contact p-m border-black round-medium my-s\">\n                                                            <div class=\"location primary\">Primary school<\/div>\n                                                                                        <h4 class=\"h5\">OIA Primary<\/h4>\n                                                        <ul class=\"info mb-0\">\n                                                                    <li>\n                                        Dussenstraat 34 ,                                                                                    2134 DL                                                                                                                            Hoofddorp                                                                            <\/li>\n                                                                                                    <li>(023) 303 5924<\/li>\n                                                                                                    <li><a href=\"mailto:i&#110;&#102;&#111;&#64;&#111;pti&#109;i&#115;t&#45;in&#116;&#101;r&#110;ation&#97;l-sc&#104;o&#111;&#108;&#46;n&#108;\">&#105;nfo&#64;op&#116;&#105;mist-&#105;n&#116;er&#110;&#97;&#116;&#105;&#111;nal&#45;s&#99;h&#111;&#111;&#108;&#46;&#110;l<\/a><\/li>\n                                                            <\/ul>\n                        <\/div>\n                                            <div class=\"contact p-m border-black round-medium my-s\">\n                                                            <div class=\"location secondary\">Secondary school<\/div>\n                                                                                        <h4 class=\"h5\">OIA Secondary<\/h4>\n                                                        <ul class=\"info mb-0\">\n                                                                    <li>\n                                        Baron de Coubertinlaan 2,                                                                                    2134 CG                                                                                                                            Hoofddorp                                                                            <\/li>\n                                                                                                    <li>(023) 562 0963<\/li>\n                                                                                                    <li><a href=\"mailto:info&#64;&#111;&#105;&#97;&#45;sec&#111;n&#100;ar&#121;&#46;n&#108;\">&#105;&#110;fo&#64;&#111;&#105;&#97;&#45;&#115;e&#99;on&#100;ar&#121;&#46;nl<\/a><\/li>\n                                                            <\/ul>\n                        <\/div>\n                                                <\/div>\n        <\/div>\n        <div class=\"column large-6 small-12\">\n            <div class=\"p-l lg:p-xl bg-red round-medium\">\n                                    <h3 class=\"block-title\">Send us a message<\/h3>\n                                                    <script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_1' ><div id='gf_1' class='gform_anchor' tabindex='-1'><\/div><form method='post' enctype='multipart\/form-data'  id='gform_1'  action='\/ml\/wp-json\/wp\/v2\/pages\/353#gf_1' data-formid='1' novalidate>\n                        <div class='gform-body gform_body'><div id='gform_fields_1' class='gform_fields top_label form_sublabel_above description_above validation_below'><div id=\"field_1_6\" class=\"gfield gfield--type-honeypot gform_validation_container field_sublabel_above gfield--has-description field_description_above field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_1_6'><span class='gform-field-label__text'>Company<\/span><\/label><div class='gfield_description' id='gfield_description_1_6'>This field is for validation purposes and should be left unchanged.<\/div><div class='ginput_container'><input name='input_6' id='input_1_6' type='text' value='' autocomplete='new-password'\/><\/div><\/div><fieldset id=\"field_1_1\" class=\"gfield gfield--type-name gfield--input-type-name gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\"  ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>Name<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_1_1'>\n                            \n                            <span id='input_1_1_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >\n                                                    <label for='input_1_1_3' class='gform-field-label gform-field-label--type-sub '>First<\/label>\n                                                    <input type='text' name='input_1.3' id='input_1_1_3' value=''   aria-required='true'    autocomplete=\"given-name\" \/>\n                                                <\/span>\n                            \n                            <span id='input_1_1_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >\n                                                            <label for='input_1_1_6' class='gform-field-label gform-field-label--type-sub '>Last<\/label>\n                                                            <input type='text' name='input_1.6' id='input_1_1_6' value=''   aria-required='true'    autocomplete=\"family-name\" \/>\n                                                        <\/span>\n                            \n                        <\/div><\/fieldset><div id=\"field_1_2\" class=\"gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_1_2'><span class='gform-field-label__text'>E-mailadress<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_2' id='input_1_2' type='email' value='' class='large'    aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/div><div id=\"field_1_3\" class=\"gfield gfield--type-textarea gfield--input-type-textarea gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_1_3'><span class='gform-field-label__text'>Message<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/label><div class='ginput_container ginput_container_textarea' data-text-counter-max='600' data-text-counter-template='{current} of {max} max characters'><textarea name='input_3' id='input_1_3' class='textarea medium'   maxlength='600'  aria-required=\"true\" aria-invalid=\"false\"   rows='10' cols='50'><\/textarea><\/div><\/div><fieldset id=\"field_1_4\" class=\"gfield gfield--type-consent gfield--type-choice gfield--input-type-consent gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible gfield--choice-align-vertical\"  ><legend class='gfield_label gform-field-label gfield_label_before_complex' ><span class='gform-field-label__text'>Consent<\/span><span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/legend><div class='ginput_container ginput_container_consent'><input name='input_4.1' id='input_1_4_1' type='checkbox' value='1'   aria-required=\"true\" aria-invalid=\"false\"   \/> <label class=\"gform-field-label gform-field-label--type-inline gfield_consent_label\" for='input_1_4_1' ><span class='gform-field-label__text'>I agree to the privacy policy of Optimist International Academy.<\/span><\/label><input type='hidden' name='input_4.2' value='I agree to the privacy policy of Optimist International Academy.' class='gform_hidden' \/><input type='hidden' name='input_4.3' value='1' class='gform_hidden' \/><\/div><\/fieldset><div id=\"field_1_5\" class=\"gfield gfield--type-turnstile gfield--input-type-turnstile gfield--width-full field_sublabel_above gfield--no-description field_description_above field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_turnstile'><div class=\"cf-turnstile\" id=\"cf-turnstile_1\" data-js-turnstile data-response-field-name=\"cf-turnstile-response_1\" data-theme=\"light\" data-size=\"\" data-sitekey=\"0x4AAAAAACI4sgQSbMUnPg49\"><\/div><\/div><\/div><\/div><\/div>\n        <div class='gform-footer gform_footer top_label'> <button type='submit' id='gform_submit_button_1' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' >Submit<\/button> <input type='hidden' class='gform_hidden' name='gform_submission_speeds' value='{&quot;pages&quot;:[]}' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_1' value='postback' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_1' id='gform_theme_1' value='gravity-theme' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_1' id='gform_style_settings_1' value='' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_1' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='1' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='EUR' value='tZpJFlY9dR42YOP+4kCIWV0K2zsEJq+AxOEstm08osjqSm8bjm9AeRF+cujGm1GHnE5vYCV3Ai+nZWSlnxK3K2dLjAV5ljnIr8SY2upqxdrFP4s=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_1' value='WyJ7XCI0LjFcIjpcIjA0ZmU5Y2E4ZDkzMDljODEzYmQyZmMzNjU3ZjZkYmZmXCIsXCI0LjJcIjpcIjkyZWViZmI4MzZjZjRlMThiYjM3NDY3OTVhNDM1OGZjXCIsXCI0LjNcIjpcIjA0ZmU5Y2E4ZDkzMDljODEzYmQyZmMzNjU3ZjZkYmZmXCIsXCJnZm9ybV9zdWJtaXNzaW9uX21ldGhvZFwiOltcIjg0ZmEwYjgzZmI0YjI5ZjA4NTkwYTRlNDA0NTZkZjBjXCIsXCIxYTFhNWIyMmNmYTJjMWFmNTQyZjQzYzE2OWI2M2EzMlwiXSxcImdmb3JtX3RoZW1lXCI6XCI5YjQwNWJjMzBiMDZmOGE3ODljMzY4ZDM0Y2U5YzU1ZVwiLFwiZ2Zvcm1fc3R5bGVfc2V0dGluZ3NcIjpcImZlNGUyYmJkMmZlMjBhODQ4YjY4YTAwNmE3MzU5YWRiXCIsXCJmb3JtX2lkXCI6XCIwNGZlOWNhOGQ5MzA5YzgxM2JkMmZjMzY1N2Y2ZGJmZlwiLFwidXJsXCI6XCIwMGQxOTAzNGMyZGE2OTU4NjJlYzk3NGNkYWMyZTFhY1wiLFwic3RhdGVfdGltZXN0YW1wXCI6XCIwYTAxNTU3NjVmODM2Y2Y0NTU4MTg5ZWI1NTM0M2JlYlwifSIsImNkYTFiMmFhNzcyNzdmMjM5ODQxZjhlNDllMTVjMTA1IiwxNzg5MDExNjc3XQ==' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_1' id='gform_target_page_number_1' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_1' id='gform_source_page_number_1' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div>                            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n\n<h2 class=\"wp-block-heading\">Our locations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Optimist International Academy operates across two locations in Hoofddorp.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>OIA Primary<\/strong><br>Dussenstraat 34<br>2134 DL Hoofddorp<br>The Netherlands<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>OIA Secondary<\/strong><br>Baron de Coubertinlaan 2<br>2134 CG Hoofddorp<br>The Netherlands<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Both campuses are located in a quiet residential area of Hoofddorp, approximately 15 minutes from Schiphol Airport and Haarlem, and around 20 minutes from Amsterdam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The academy is easily accessible by bike, public transport and car. Frequent bus connections provide direct access to Schiphol Airport, Hoofddorp Station, Haarlem and the surrounding region.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Free parking is available at both locations.<\/p>\n\n\n\n\n\n<section id=\"block-openstreetmap-block_e5cbcc5c68520b2e4175fb4661393a3a\" class=\"block-openstreetmap streetmap wp-block alignfull\">\n    <div class=\"row align-center\">\n        <div class=\"column large-10\">\n            <div id=\"map\"><\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- Leaflet -->\n<link rel=\"stylesheet\" href=\"https:\/\/optimist-international-academy.nl\/wp-content\/themes\/raadhuis\/blocks\/openstreetmap\/vendor\/leaflet\/leaflet-1.9.4.css\" \/>\n<script src=\"https:\/\/optimist-international-academy.nl\/wp-content\/themes\/raadhuis\/blocks\/openstreetmap\/vendor\/leaflet\/leaflet-1.9.4.js\"><\/script>\n\n<!-- Maplibre GL -->\n<link href=\"https:\/\/optimist-international-academy.nl\/wp-content\/themes\/raadhuis\/blocks\/openstreetmap\/vendor\/maplibre-gl\/maplibre-gl-5.18.0.css\" rel=\"stylesheet\" \/>\n<script src=\"https:\/\/optimist-international-academy.nl\/wp-content\/themes\/raadhuis\/blocks\/openstreetmap\/vendor\/maplibre-gl\/maplibre-gl-5.18.0.js\"><\/script>\n\n<!-- Maplibre GL Leaflet  -->\n<script src=\"https:\/\/optimist-international-academy.nl\/wp-content\/themes\/raadhuis\/blocks\/openstreetmap\/vendor\/maplibre-gl-leaflet\/leaflet-maplibre-gl-0.1.3.js\"><\/script>\n\n<style scoped>\n    #map {\n        position: relative;\n        z-index: 1;\n        width: 100%;\n        height: 600px;\n\n        @media (max-width: 599px) {\n            height: 300px;\n        }\n    }\n\n    .marker-cluster-small {\n        background-color: rgba(56, 52, 148, .6);\n        font-weight: bold;\n        color: white;\n    }\n\n    .marker-cluster-small div {\n        background-color: rgba(56, 52, 148, .6);\n        font-weight: bold;\n        color: white;\n    }\n\n    .marker-cluster-medium {\n        background-color: rgba(56, 52, 148, .6);\n        font-weight: bold;\n        color: white;\n    }\n\n    .marker-cluster-medium div {\n        background-color: rgba(56, 52, 148, .6);\n        font-weight: bold;\n        color: white;\n    }\n\n    .marker-cluster-large {\n        background-color: rgba(56, 52, 148, .6);\n        font-weight: bold;\n        color: white;\n    }\n\n    .marker-cluster-large div {\n        background-color: rgba(56, 52, 148, .6);\n        font-weight: bold;\n        color: white;\n    }\n\n    .leaflet-oldie .marker-cluster-small {\n        background-color: #383494\n    }\n\n    .leaflet-oldie .marker-cluster-small div {\n        background-color: #383494\n    }\n\n    .leaflet-oldie .marker-cluster-medium {\n        background-color: #383494\n    }\n\n    .leaflet-oldie .marker-cluster-medium div {\n        background-color: #383494\n    }\n\n    .leaflet-oldie .marker-cluster-large {\n        background-color: #383494\n    }\n\n    .leaflet-oldie .marker-cluster-large div {\n        background-color: #383494\n    }\n\n    .marker-cluster {\n        background-clip: padding-box;\n        border-radius: 20px\n    }\n\n    .marker-cluster div {\n        width: 30px;\n        height: 30px;\n        margin-left: 5px;\n        margin-top: 5px;\n        text-align: center;\n        border-radius: 15px;\n        font: 12px \"Helvetica Neue\", Arial, Helvetica, sans-serif\n    }\n\n    .marker-cluster span {\n        line-height: 30px\n    }\n\n    .map-popup {\n        text-align: center;\n        width: 100%;\n        margin: 0;\n        max-height: 350px;\n        height: auto;\n    }\n\n    .map-popup .map-title {\n        font-size: 1.25rem;\n        margin-top: 0;\n        margin-bottom: 0.5rem;\n    }\n\n    .map-popup p {\n        margin: 0.5rem 0;\n        font-size: 0.9rem;\n    }\n\n    .map-popup img {\n        width: 100%;\n        display: block;\n        margin: 0.5rem 0;\n        border-radius: 4px;\n    }\n\n    .map-popup a {\n        text-decoration: none;\n        color: black;\n        display: inline-block;\n        padding: 0.5rem 1rem;\n        background-color: #383494;\n        color: white;\n        font-weight: bold;\n        border-radius: 4px;\n        margin-top: 0.5rem;\n    }\n\n    .map-popup a:hover {\n        background-color: #e0e0e0;\n    }\n<\/style>\n\n<script>\n    \/\/ --- ICONEN DEFINI\u00cbREN ---\n\n    \/\/ Iconen en groottes aanpassen:\n    var primaryIcon = L.icon({\n        iconUrl: '\/wp-content\/themes\/raadhuis\/dist\/assets\/img\/icon-multilingual.svg', \/\/ Eerste school\n\n        iconSize: [42, 98], \/\/ Grootte van het plaatje\n        shadowSize: [50, 64],\n        iconAnchor: [22, 94], \/\/ Welk punt van het plaatje staat op de co\u00f6rdinaat (puntje onderaan)\n        shadowAnchor: [4, 62],\n        popupAnchor: [-3, -76] \/\/ Waar opent de popup ten opzichte van het icoon\n    });\n\n    var secondaryIcon = L.icon({\n        iconUrl: '\/wp-content\/themes\/raadhuis\/dist\/assets\/img\/icon-learning-path.svg', \/\/ Tweede school\n        iconSize: [42, 98],\n        iconAnchor: [22, 94],\n        popupAnchor: [-3, -76]\n    });\n\n    \/\/ --- DE DATA VANUIT PHP ---\n    const markersData = [{\"title\":\"Secondary school\",\"icon\":\"https:\/\/optimist-international-academy.nl\/wp-content\/uploads\/2025\/12\/icon-learning-path.svg\",\"link\":{\"title\":\"Contact\",\"url\":\"https:\/\/optimist-international-academy.nl\/contact\/\"},\"image\":{\"url\":\"https:\/\/optimist-international-academy.nl\/wp-content\/uploads\/2026\/05\/IMG_2929copy-scaled.jpg\",\"alt\":\"\"},\"center_lat\":52.3063795,\"center_lng\":4.6448135,\"locations\":[{\"label\":\"Baron De Coubertinlaan 2, 2134 CG Hoofddorp, Noord-Holland Nederland\",\"default_label\":\"Baron De Coubertinlaan 2, 2134 CG Hoofddorp, Noord-Holland Nederland\",\"lat\":52.3063458,\"lng\":4.6447796,\"geocode\":[{\"name\":\"2, Baron De Coubertinlaan, Floriande, Hoofddorp, Haarlemmermeer, Noord-Holland, Nederland, 2134 CG, Nederland\",\"html\":\"Baron De Coubertinlaan 2, 2134 CG Hoofddorp, Noord-Holland Nederland\",\"bbox\":{\"_southWest\":{\"lat\":52.3062958,\"lng\":4.6447296},\"_northEast\":{\"lat\":52.3063958,\"lng\":4.6448296}},\"center\":{\"lat\":52.3063458,\"lng\":4.6447796},\"properties\":{\"place_id\":144725429,\"licence\":\"Data u00a9 OpenStreetMap contributors, ODbL 1.0. http:\/\/osm.org\/copyright\",\"osm_type\":\"node\",\"osm_id\":2729732538,\"lat\":\"52.3063458\",\"lon\":\"4.6447796\",\"class\":\"place\",\"type\":\"house\",\"place_rank\":30,\"importance\":5.878461890588262e-5,\"addresstype\":\"place\",\"name\":\"\",\"display_name\":\"2, Baron De Coubertinlaan, Floriande, Hoofddorp, Haarlemmermeer, Noord-Holland, Nederland, 2134 CG, Nederland\",\"address\":{\"house_number\":\"2\",\"road\":\"Baron De Coubertinlaan\",\"quarter\":\"Floriande\",\"town\":\"Hoofddorp\",\"municipality\":\"Haarlemmermeer\",\"state\":\"Noord-Holland\",\"ISO3166-2-lvl4\":\"NL-NH\",\"country\":\"Nederland\",\"postcode\":\"2134 CG\",\"country_code\":\"nl\",\"building\":\"\",\"city\":\"\",\"village\":\"\",\"hamlet\":\"\"},\"boundingbox\":[52.3062958,52.3063958,4.6447296,4.6448296]}}],\"uuid\":\"marker_69a16b2b8bc36\"}]},{\"title\":\"Primary school\",\"icon\":\"https:\/\/optimist-international-academy.nl\/wp-content\/uploads\/2025\/12\/icon-multilingual.svg\",\"link\":{\"title\":\"Contact\",\"url\":\"https:\/\/optimist-international-academy.nl\/contact\/\"},\"image\":{\"url\":\"https:\/\/optimist-international-academy.nl\/wp-content\/uploads\/2026\/05\/IMG_2782copy-scaled.jpg\",\"alt\":\"\"},\"center_lat\":52.3061695,\"center_lng\":4.6403503,\"locations\":[{\"label\":\"Dussenstraat 34, 2134 DL Hoofddorp, Noord-Holland Nederland\",\"default_label\":\"Dussenstraat 34, 2134 DL Hoofddorp, Noord-Holland Nederland\",\"lat\":52.3061184,\"lng\":4.640401,\"geocode\":[{\"name\":\"34, Dussenstraat, Floriande, Hoofddorp, Haarlemmermeer, Noord-Holland, Nederland, 2134 DL, Nederland\",\"html\":\"Dussenstraat 34, 2134 DL Hoofddorp, Noord-Holland Nederland\",\"bbox\":{\"_southWest\":{\"lat\":52.3060684,\"lng\":4.640351},\"_northEast\":{\"lat\":52.3061684,\"lng\":4.640451}},\"center\":{\"lat\":52.3061184,\"lng\":4.640401},\"properties\":{\"place_id\":144766660,\"licence\":\"Data u00a9 OpenStreetMap contributors, ODbL 1.0. http:\/\/osm.org\/copyright\",\"osm_type\":\"node\",\"osm_id\":2729738329,\"lat\":\"52.3061184\",\"lon\":\"4.6404010\",\"class\":\"place\",\"type\":\"house\",\"place_rank\":30,\"importance\":5.878461890588262e-5,\"addresstype\":\"place\",\"name\":\"\",\"display_name\":\"34, Dussenstraat, Floriande, Hoofddorp, Haarlemmermeer, Noord-Holland, Nederland, 2134 DL, Nederland\",\"address\":{\"house_number\":\"34\",\"road\":\"Dussenstraat\",\"quarter\":\"Floriande\",\"town\":\"Hoofddorp\",\"municipality\":\"Haarlemmermeer\",\"state\":\"Noord-Holland\",\"ISO3166-2-lvl4\":\"NL-NH\",\"country\":\"Nederland\",\"postcode\":\"2134 DL\",\"country_code\":\"nl\",\"building\":\"\",\"city\":\"\",\"village\":\"\",\"hamlet\":\"\"},\"boundingbox\":[52.3060684,52.3061684,4.640351,4.640451]}}],\"uuid\":\"marker_69a16b328bc37\"}]}];\n    const enableClustering = false;\n\n    \/\/ Gegenereerde adressenlijst\n    const addresses = [];\n    const centerMap = [52.306227, 4.642475]; \/\/ Hoofddorp\n    let mapCenterLat = centerMap[0];\n    let mapCenterLng = centerMap[1];\n\n    \/\/ Verwerk de markers data\n    markersData.forEach((marker, index) => {\n        const locations = marker.locations || [];\n\n        \/\/ Als er locations zijn, gebruik de eerste locatie of het centrum\n        if (locations.length > 0) {\n            const location = locations[0];\n            const lat = location.lat || marker.center_lat;\n            const lng = location.lng || marker.center_lng;\n            const label = location.label || location.default_label || marker.title;\n\n            \/\/ Maak een HTML popup\n            let popupHTML = '<div class=\"map-popup\">';\n\n            if (marker.image && marker.image.url) {\n                popupHTML += `<img decoding=\"async\" src=\"${marker.image.url}\" alt=\"${marker.title}\">`;\n            }\n\n            popupHTML += `<h3 class=\"map-title\">${marker.title}<\/h3>`;\n            popupHTML += `<p>${label}<\/p>`;\n\n            if (marker.link && marker.link.url) {\n                popupHTML += `<a href=\"${marker.link.url}\">${marker.link.title || 'Meer informatie'}<\/a>`;\n            }\n\n            popupHTML += '<\/div>';\n\n            addresses.push([lat, lng, popupHTML, index]);\n\n            \/\/ Gebruik het eerste marker als center als dit het eerste item is\n            if (index === 0) {\n                mapCenterLat = marker.center_lat || lat;\n                mapCenterLng = marker.center_lng || lng;\n            }\n        }\n    });\n\n    \/\/ --- MARKERS MAKEN ---\n    var markers;\n    if (enableClustering === true) {\n        markers = new L.MarkerClusterGroup();\n    } else {\n        markers = new L.FeatureGroup();\n    }\n\n    for (var i = 0; i < addresses.length; i++) {\n        var a = addresses[i];\n        var title = a[2];\n        var markerIndex = a[3];\n\n        \/\/ Gebruik icoon van de marker data als beschikbaar\n        var chosenIcon = secondaryIcon; \/\/ Default icon\n\n        if (markersData[markerIndex]) {\n            var markerData = markersData[markerIndex];\n            if (markerData.icon) {\n                \/\/ Optioneel: Maak dynamische iconen op basis van de icon URL\n                chosenIcon = L.icon({\n                    iconUrl: markerData.icon,\n                    iconSize: [42, 98],\n                    iconAnchor: [22, 94],\n                    popupAnchor: [-3, -76]\n                });\n            } else if (markerIndex === 0) {\n                chosenIcon = secondaryIcon;\n            } else {\n                chosenIcon = primaryIcon;\n            }\n        }\n\n        var marker = L.marker(new L.LatLng(a[0], a[1]), {\n            title: title,\n            icon: chosenIcon \/\/ <--- Gebruik de variabele\n        });\n\n        marker.bindPopup(title, {\n            maxWidth: 300,\n            autoPan: false,\n            closeButton: true\n        });\n\n        \/\/ Zorg dat de popup goed in beeld komt\n        \/\/ marker.on('popupopen', function() {\n        \/\/     map.panTo(marker.getLatLng());\n        \/\/ });\n\n        markers.addLayer(marker);\n    }\n\n    var theme = L.maplibreGL({\n        style: 'https:\/\/tiles.openfreemap.org\/styles\/positron',\n    });\n\n    \/\/ --- INITIALISEREN ---\n    const map = L.map('map', {\n        center: [mapCenterLat, mapCenterLng],\n        zoom: 16,\n        minZoom: 8,\n        maxZoom: 20,\n        scrollWheelZoom: false,\n        layers: [theme, markers]\n    });\n\n    \/\/ --- DYNAMISCHE ICON GROOTTE NAAR ZOOMLEVEL ---\n    function getIconSizeForZoom(zoom) {\n        if (zoom <= 12) {\n            return {\n                size: [20, 50],\n                anchor: [10, 50],\n                popup: [-3, -50]\n            };\n        } else if (zoom <= 15) {\n            return {\n                size: [30, 70],\n                anchor: [15, 70],\n                popup: [-3, -70]\n            };\n        } else {\n            return {\n                size: [42, 98],\n                anchor: [22, 94],\n                popup: [-3, -76]\n            };\n        }\n    }\n\n    function updateMarkerIcons(currentZoom) {\n        const iconDimensions = getIconSizeForZoom(currentZoom);\n\n        markers.eachLayer(function(marker) {\n            if (marker instanceof L.Marker) {\n                const markerIndex = addresses.findIndex(addr =>\n                    addr[0] === marker.getLatLng().lat &&\n                    addr[1] === marker.getLatLng().lng\n                );\n\n                if (markerIndex !== -1) {\n                    const index = addresses[markerIndex][3];\n                    let newIcon = secondaryIcon;\n\n                    if (markersData[index]) {\n                        const markerData = markersData[index];\n                        if (markerData.icon) {\n                            newIcon = L.icon({\n                                iconUrl: markerData.icon,\n                                iconSize: iconDimensions.size,\n                                iconAnchor: iconDimensions.anchor,\n                                popupAnchor: iconDimensions.popup\n                            });\n                        } else if (index === 0) {\n                            newIcon = L.icon({\n                                iconUrl: '\/wp-content\/themes\/raadhuis\/dist\/assets\/img\/icon-learning-path.svg',\n                                iconSize: iconDimensions.size,\n                                iconAnchor: iconDimensions.anchor,\n                                popupAnchor: iconDimensions.popup\n                            });\n                        } else {\n                            newIcon = L.icon({\n                                iconUrl: '\/wp-content\/themes\/raadhuis\/dist\/assets\/img\/icon-multilingual.svg',\n                                iconSize: iconDimensions.size,\n                                iconAnchor: iconDimensions.anchor,\n                                popupAnchor: iconDimensions.popup\n                            });\n                        }\n                    }\n\n                    marker.setIcon(newIcon);\n                }\n            }\n        });\n    }\n\n    map.on('popupopen', function(e) {\n        var latLng = e.popup.getLatLng();\n        var popupHeight = 370; \/\/ pixels\n        var offset = popupHeight \/ 2 + 50; \/\/ popup height + extra padding\n\n        \/\/ Converteer lat\/lng naar pixel-co\u00f6rdinaten\n        var point = map.latLngToContainerPoint(latLng);\n        \/\/ Verplaats omhoog om ruimte voor popup te maken\n        point.y -= offset;\n        \/\/ Converteer terug naar lat\/lng en pan daarheen\n        var newLatLng = map.containerPointToLatLng(point);\n        map.panTo(newLatLng);\n    });\n\n    \/\/ Update markers wanneer het zoomlevel verandert\n    map.on('zoom', function() {\n        map.closePopup(); \/\/ Sluit popup bij zoom\n        updateMarkerIcons(map.getZoom());\n    });\n\n    \/\/ Initial update\n    updateMarkerIcons(map.getZoom());\n<\/script>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you need to reach a specific contact person: Head of Primary \u2013 Anne-Marie van HolstEmail: &#97;&#110;&#110;e&#109;&#97;rie&#46;&#118;a&#110;&#104;o&#108;s&#116;&#64;fl&#111;re&#101;r&#46;n&#108; Head of Secondary \u2013 Jon SymmonsEmail:\u00a0 &#106;.symmo&#110;&#115;&#64;o&#105;a&#45;&#115;e&#99;&#111;nda&#114;y&#46;&#110;&#108; Admissions enquiries: Cheryl Embleton Email (Admissions): via OpenApply or c&#104;&#101;ryl&#46;&#101;mb&#108;eton&#64;&#102;&#108;&#111;reer.nl Our locations Optimist International Academy operates across two locations in Hoofddorp. OIA PrimaryDussenstraat 342134 DL HoofddorpThe Netherlands OIA SecondaryBaron de Coubertinlaan<a class=\"excerpt-read-more\" href=\"https:\/\/optimist-international-academy.nl\/ml\/contact\/\" title=\"\u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15 \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d15\">\u2026 \u0d15\u0d42\u0d1f\u0d41\u0d24\u0d7d \u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15 \u00bb<\/a><\/p>","protected":false},"author":1,"featured_media":1155,"parent":0,"menu_order":17,"comment_status":"closed","ping_status":"closed","template":"page-templates\/red-header.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-353","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/pages\/353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/comments?post=353"}],"version-history":[{"count":43,"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/pages\/353\/revisions"}],"predecessor-version":[{"id":1635,"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/pages\/353\/revisions\/1635"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/media\/1155"}],"wp:attachment":[{"href":"https:\/\/optimist-international-academy.nl\/ml\/wp-json\/wp\/v2\/media?parent=353"}],"curies":[{"name":"\u0d21\u0d2c\u0d4d\u0d32\u0d4d\u0d2f\u0d41\u0d2a\u0d3f","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}