{"id":11272,"date":"2025-09-02T09:45:25","date_gmt":"2025-09-02T07:45:25","guid":{"rendered":"https:\/\/www.galmeon.com\/find-a-practitioner\/"},"modified":"2026-09-09T16:27:29","modified_gmt":"2026-09-09T14:27:29","slug":"find-a-practitioner","status":"publish","type":"page","link":"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/","title":{"rendered":"Find a practitioner"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"11272\" class=\"elementor elementor-11272 elementor-4033\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c1a633e animated-fast e-flex e-con-boxed e-con e-parent\" data-id=\"c1a633e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;none&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-c2796f9 e-con-full animated-fast e-flex e-con e-child\" data-id=\"c2796f9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;none&quot;,&quot;animation_delay&quot;:0}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c842079 animated-fast reveal-title elementor-widget elementor-widget-heading\" data-id=\"c842079\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_delay&quot;:0}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Therapy Galmeon \n(formerly Allyane)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d5cf45b animated-fast reveal-title elementor-widget elementor-widget-heading\" data-id=\"d5cf45b\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;,&quot;_animation_delay&quot;:200}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Find<br \/>a practitioner<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-973ec9a e-con-full e-flex e-con e-parent\" data-id=\"973ec9a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-97fcab7 elementor-widget elementor-widget-template\" data-id=\"97fcab7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"container\" data-elementor-id=\"11596\" class=\"elementor elementor-11596 elementor-3700 elementor-3700\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-38aafc2c e-con-full e-flex e-con e-parent\" data-id=\"38aafc2c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-79814bc e-con-full e-flex e-con e-child\" data-id=\"79814bc\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-4e90fd1c e-con-full e-flex e-con e-child\" data-id=\"4e90fd1c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-15a82702 elementor-widget elementor-widget-heading\" data-id=\"15a82702\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Find a practitioner<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c0c30f3 elementor-widget elementor-widget-heading\" data-id=\"c0c30f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\"><div>Results: <span id=\"praticiens-count\">0<\/span><\/div><\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-35118e23 e-con-full e-flex e-con e-child\" data-id=\"35118e23\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7dc62c78 e-con-full e-flex e-con e-child\" data-id=\"7dc62c78\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-479c1f61 elementor-widget elementor-widget-heading\" data-id=\"479c1f61\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Filters<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-55d0c4b elementor-widget elementor-widget-shortcode\" data-id=\"55d0c4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t<style>\n\t\t.praticiens-filters {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n    \t\tgap: 10px;\n\t\t}\n\t\t.praticiens-filters label {\n\t\t\tcolor: var( --e-global-color-secondary );\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 10px;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.praticiens-filters label input[type=\"checkbox\"] {\n\t\t\tappearance: none;\n  \t\t\tbackground-color: var( --e-global-color-secondary );\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t.praticiens-filters input[type=\"checkbox\"] {\n\t\t  display: grid;\n\t\t  place-content: center;\n\t\t}\n\t\t.praticiens-filters input[type=\"checkbox\"]::before {\n\t\t  content: \"\";\n\t\t  width: 14px;\n\t\t  height: 14px;\n\t\t  transform: scale(0);\n\t\t  transition: 80ms transform ease-in-out;\n\t\t  box-shadow: inset 14px 14px var( --e-global-color-accent );\n\t\t}\n\t\t.praticiens-filters input[type=\"checkbox\"]:checked::before {\n\t\t  transform: scale(1);\n\t\t}\n\t<\/style>\n    <div class=\"praticiens-filters\">\n        <label><input type=\"checkbox\" value=\"__all\" checked> All<\/label>\n                    <label><input type=\"checkbox\" value=\"center-of-excellence\"> Center of Excellence<\/label>\n                    <label><input type=\"checkbox\" value=\"allyane-care\"> Galmeon Care<\/label>\n                    <label><input type=\"checkbox\" value=\"allyane-elite\"> Galmeon Elite<\/label>\n                    <label><input type=\"checkbox\" value=\"maxillofacial\"> Maxillofacial<\/label>\n                    <label><input type=\"checkbox\" value=\"neurology\"> Neurology<\/label>\n            <\/div>\n\n    <script>\n    (function($){\n        $('.praticiens-filters').on('change', 'input[type=checkbox]', function(){\n            const $this = $(this);\n\n            if($this.val() === '__all'){\n                if($this.prop('checked')) $('.praticiens-filters input[type=checkbox]').not($this).prop('checked', false);\n            } else {\n                if($this.prop('checked')) $('.praticiens-filters input[value=\"__all\"]').prop('checked', false);\n                if($('.praticiens-filters input[type=checkbox]:checked').length === 0)\n                    $('.praticiens-filters input[value=\"__all\"]').prop('checked', true);\n            }\n\n            \/\/ R\u00e9cup\u00e8re toutes les cat\u00e9gories s\u00e9lectionn\u00e9es\n            const selected = $('.praticiens-filters input[type=checkbox]:checked').map(function(){ \n                return $(this).val(); \n            }).get();\n\t\t\t\n\t\t\t\/\/ On vide le champ de recherche de Ville \/ CP \/ R\u00e9gion \u00e0 chaque changement de filtre\n\t\t\t$('#praticiens-search-input').val('');\n\t\t\twindow.currentBounds = null; \/\/ on annule aussi le filtre g\u00e9ographique\n\n            window.currentCategories = selected;\n\n            \/\/ D\u00e9clenche \u00e9v\u00e9nement global pour mise \u00e0 jour liste + carte + compteur + pagination\n            $(document).trigger('praticiensFiltreChange', [selected]);\n        });\n    })(jQuery);\n    <\/script>\n    \t\t<div class=\"elementor-shortcode\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-887eab0 elementor-widget elementor-widget-shortcode\" data-id=\"887eab0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n        .praticiens-search { margin-bottom: 20px; }\n        .praticiens-search input[type=\"text\"] {\n            width: 100%;\n            padding: 10px;\n            border: 1px solid #ccc;\n            border-radius: 6px;\n            font-size: 16px;\n        }\n    <\/style>\n\n    <div class=\"praticiens-search\">\n        <input id=\"praticiens-search-input\" type=\"text\" placeholder=\"Search for a city, a ZIP code...\">\n    <\/div>\n\n    <script>\n    (function($){\n        let autocomplete = null;\n\t\t\n\t\t\/\/ Filtre global r\u00e9utilis\u00e9 par la liste et la carte\n\t\twindow.currentBounds = null; \/\/ null = pas de filtre g\u00e9ographique actif\n\n\t\twindow.isPraticienVisible = function($el) {\n\t\t\tconst cats = $el.data('categories')?.split(',') || [];\n\t\t\tconst catOk = window.currentCategories.includes('__all') || window.currentCategories.every(c => cats.includes(c));\n\t\t\tif(!catOk) return false;\n\n\t\t\tif(window.currentBounds) {\n\t\t\t\tconst lat = parseFloat($el.data('lat'));\n\t\t\t\tconst lng = parseFloat($el.data('lng'));\n\t\t\t\tif(isNaN(lat) || isNaN(lng)) return false;\n\t\t\t\tconst latlng = new google.maps.LatLng(lat, lng);\n\t\t\t\tif(!window.currentBounds.contains(latlng)) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\n\t\tfunction initAutocomplete() {\n\t\t\tif (autocomplete || !window.google || !google.maps.places) return;\n\t\t\tconst input = document.getElementById('praticiens-search-input');\n\t\t\tif (!input) return;\n\n\t\t\tautocomplete = new google.maps.places.Autocomplete(input, {\n\t\t\t\ttypes: ['(regions)']\n\t\t\t});\n\n\t\t\tautocomplete.addListener('place_changed', function() {\n\t\t\t\tconst place = autocomplete.getPlace();\n\t\t\t\tif (!place.geometry) return;\n\n\t\t\t\tlet bounds;\n\t\t\t\tif (place.geometry.viewport) {\n\t\t\t\t\tbounds = place.geometry.viewport;\n\t\t\t\t} else {\n\t\t\t\t\tbounds = new google.maps.LatLngBounds();\n\t\t\t\t\tbounds.extend(place.geometry.location);\n\t\t\t\t}\n\n\t\t\t\twindow.currentBounds = bounds;\n\n\t\t\t\tif (window.map) {\n\t\t\t\t\twindow.map.fitBounds(bounds);\n\t\t\t\t}\n\n\t\t\t\t\/\/ D\u00e9clenche la mise \u00e0 jour de la liste ET des marqueurs\n\t\t\t\t$(document).trigger('praticiensFiltreChange');\n\t\t\t});\n\n\t\t\t\/\/ Si l'utilisateur vide le champ manuellement, on retire le filtre g\u00e9o\n\t\t\t$(input).on('input', function(){\n\t\t\t\tif($(this).val().trim() === '') {\n\t\t\t\t\twindow.currentBounds = null;\n\t\t\t\t\t$(document).trigger('praticiensFiltreChange');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconsole.log('Autocomplete pr\u00eat');\n\t\t}\n\n        $(document).ready(function(){\n            const timer = setInterval(() => {\n                if (window.google && google.maps.places) {\n                    clearInterval(timer);\n                    initAutocomplete();\n                }\n            }, 300);\n        });\n    })(jQuery);\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c6a315a e-con-full elementor-hidden-mobile e-flex e-con e-child\" data-id=\"2c6a315a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4347fa2 elementor-widget elementor-widget-shortcode\" data-id=\"4347fa2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t    <style>\n        #praticiens-wrapper {\n            height: 640px;\n            overflow-y: auto;\n        }\n        #praticiens-loader {\n            text-align:center;\n            display:none;\n            padding: 20px;\n        }\n        .spinner {\n            width: 36px;\n            height: 36px;\n            border: 4px solid rgba(255,255,255,0.32);\n            border-top-color: #FFF;\n            border-radius: 50%;\n            animation: spin 0.8s linear infinite;\n            margin: auto;\n        }\n        @keyframes spin {\n            to { transform: rotate(360deg); }\n        }\n        .praticien-item {\n            opacity: 0;\n            transform: translateY(20px);\n            transition: opacity 0.32s ease, transform 0.32s ease;\n            display: none;\n        }\n        .praticien-item.visible {\n            display: flex;\n            opacity: 1;\n            transform: translateY(0);\n        }\n    <\/style>\n\n    <div id=\"praticiens-wrapper\">\n        <div id=\"praticiens-container\"><\/div>\n        <div id=\"praticiens-loader\"><div class=\"spinner\"><\/div><\/div>\n    <\/div>\n\n    <script>\n    (function($){\n        window.currentCategories = window.currentCategories || ['__all'];\n        const perPage = 6;\n        let currentPage = 1;\n        let totalPages = 1;\n        let loading = false;\n\n\t\tfunction updateCount() {\n\t\t\tconst total = $('.praticien-item').filter(function() {\n\t\t\t\treturn window.isPraticienVisible($(this));\n\t\t\t}).length;\n\t\t\t$('#praticiens-count').text(total);\n\t\t\treturn total;\n\t\t}\n\t\t\t\t\n\t\tfunction afficherPage(page, append=false){\n\t\t\tconst start = (page-1)*perPage;\n\t\t\tconst end = start+perPage;\n\t\t\tconst $items = $('.praticien-item').filter(function() {\n\t\t\t\treturn window.isPraticienVisible($(this));\n\t\t\t});\n\t\t\tconst $toShow = $items.slice(start,end);\n\n\t\t\tif(!append) {\n\t\t\t\t$('#praticiens-container .praticien-item').removeClass('visible').hide();\n\t\t\t\t\/\/ Mise \u00e0 jour de la map uniquement si ce n'est pas un ajout par scroll\n\t\t\t\tif(window.updateMarkers) window.updateMarkers();\n\t\t\t}\n\n\t\t\t$toShow.each(function(i, el){\n\t\t\t\t$(el).show();\n\t\t\t\t\/\/ 160ms d\u00e9calage entre chaque apparition\n\t\t\t\tsetTimeout(()=>$(el).addClass('visible'), i*160); \n\t\t\t});\n\t\t}\n\n        function chargerPraticiens(reset=false){\n            if(loading) return;\n            loading = true;\n            $('#praticiens-loader').fadeIn(150);\n\n            if(reset) {\n                currentPage = 1;\n                $('#praticiens-container').empty();\n            }\n\n            $.ajax({\n                url:\"https:\/\/www.galmeon.com\/wp-admin\/admin-ajax.php\",\n                type:\"POST\",\n                data:{\n                    action:\"charger_praticiens_ajax\",\n                    page:1,\n                    per_page:-1,\n                    categories: window.currentCategories,\n\t\t\t\t\tlang: (typeof ICL_LANGUAGE_CODE !== 'undefined') ? ICL_LANGUAGE_CODE : $('html').attr('lang').split('-')[0]\n                },\n                success: function(res){\n                    if(reset) $('#praticiens-container').empty();\n\n                    if(!res.trim()){\n                        $('#praticiens-container').append('<p>Aucun praticien trouv\u00e9.<\/p>');\n                        totalPages = 1;\n                    } else {\n                        $('#praticiens-container').html(res);\n                        const total = updateCount();\n                        totalPages = Math.ceil(total \/ perPage);\n                        afficherPage(currentPage);\n                    }\n                },\n                complete: function(){\n                    loading = false;\n                    $('#praticiens-loader').fadeOut(200);\n                },\n                error: ()=> {\n                    $('#praticiens-container').append('<p>Une erreur est survenue, merci de rafra\u00eechir la page.<\/p>');\n                }\n            });\n        }\n\n        $(document).on('praticiensFiltreChange', ()=>chargerPraticiens(true));\n\n        $('#praticiens-wrapper').on('scroll', function(){\n            const $this = $(this);\n            if($this.scrollTop() + $this.innerHeight() >= this.scrollHeight - 20){\n                if(currentPage < totalPages && !loading){\n                    currentPage++;\n                    afficherPage(currentPage,true);\n                }\n            }\n        });\n\n        $(document).ready(()=>chargerPraticiens());\n    })(jQuery);\n    <\/script>\n    \t\t<div class=\"elementor-shortcode\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-307bc624 e-con-full e-flex e-con e-child\" data-id=\"307bc624\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5caaf1fa elementor-widget elementor-widget-shortcode\" data-id=\"5caaf1fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t<style>\n\t\t#map {\n\t\t\tdisplay: flex;\n    \t\talign-items: center;\n    \t\tjustify-content: center;\n\t\t}\n\t\t.gm-style-iw-chr {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t.gm-style-iw {\n\t\t\tmax-width: 320px !important;\n\t\t}\n\t\t.gm-style-iw .infowindow h6 {\n\t\t\tmargin-bottom: 5px;\n\t\t}\n\t<\/style>\n    <div id=\"map\">Pour afficher la carte Google Maps, merci&nbsp;<a href=\"#map\" class=\"cmplz-show-banner\">d\u2019accepter les cookies<\/a>.<\/div>\n    <script src=\"https:\/\/unpkg.com\/@googlemaps\/markerclusterer\/dist\/index.min.js\"><\/script>\n    <script>\n    (function($){\n        var markers = [], map, markerCluster;\n\n\t\tfunction fitMapToMarkers() {\n\t\t\tconst visibleMarkers = markers.filter(m => m.visible);\n\t\t\tif (!visibleMarkers.length) return;\n\n\t\t\tconst bounds = new google.maps.LatLngBounds();\n\t\t\tvisibleMarkers.forEach(m => bounds.extend(m.position));\n\n\t\t\tconst ne = bounds.getNorthEast();\n\t\t\tconst sw = bounds.getSouthWest();\n\t\t\tconst latDiff = Math.abs(ne.lat() - sw.lat());\n\t\t\tconst lngDiff = Math.abs(ne.lng() - sw.lng());\n\n\t\t\t\/\/ Si les points sont trop dispers\u00e9s, on reste centr\u00e9 sur l'Europe\n\t\t\tif (latDiff > 20 || lngDiff > 40) {\n\t\t\t\tmap.setCenter({lat: 46.8, lng: 2.5});\n\t\t\t\tmap.setZoom(5);\n\t\t\t} else {\n\t\t\t\tmap.fitBounds(bounds);\n\t\t\t}\n\t\t}\n\n        window.initMap = function() {\n            map = new google.maps.Map(document.getElementById('map'), {\n                mapId: \"allyane-map-id\",\n                zoom: 5,\n                center: {lat:46.8,lng:2.5},\n                disableDefaultUI:true,\n                zoomControl:true,\n                streetViewControl:false,\n                mapTypeControl:false,\n                fullscreenControl:false,\n                draggable:true,\n                gestureHandling:\"cooperative\",\n                scrollwheel:false,\n                disableDoubleClickZoom:true,\n            });\n\t\t\t\n\t\t\twindow.map = map;\n\t\t\t\n            const infoWindow = new google.maps.InfoWindow();\n\t\t\tmap.addListener(\"click\", () => infoWindow.close());\n\n            \/\/ Fonction qui met \u00e0 jour les markers\n\t\t\twindow.updateMarkers = function() {\n\t\t\t\tmarkers.forEach(m => m.setMap(null));\n\t\t\t\tmarkers = [];\n\n\t\t\t\t\/\/ Comptage des coordonn\u00e9es identiques\n\t\t\t\tconst coordCounts = {};\n\t\t\t\t$('.praticien-item').each(function() {\n\t\t\t\t\tconst $this = $(this);\n\t\t\t\t\tconst lat = parseFloat($this.data('lat'));\n\t\t\t\t\tconst lng = parseFloat($this.data('lng'));\n\t\t\t\t\tconst key = `${lat}_${lng}`;\n\t\t\t\t\tcoordCounts[key] = (coordCounts[key] || 0) + 1;\n\t\t\t\t});\n\t\t\t\tconst coordIndex = {};\n\n\t\t\t\t$('.praticien-item').each(function() {\n\t\t\t\t\tconst $this = $(this);\n\t\t\t\t\tlet lat = parseFloat($this.data('lat'));\n\t\t\t\t\tlet lng = parseFloat($this.data('lng'));\n\t\t\t\t\tconst cats = $this.data('categories').split(',');\n\t\t\t\t\tif(!window.isPraticienVisible($this)) return;\n\n\t\t\t\t\t\/\/ Jitter si trop de marqueurs ayant pr\u00e9cis\u00e9ment les m\u00eames coordonn\u00e9es\n\t\t\t\t\tconst key = `${lat}_${lng}`;\n\t\t\t\t\tconst count = coordCounts[key];\n\t\t\t\t\tcoordIndex[key] = (coordIndex[key] || 0);\n\t\t\t\t\tif(count > 1){\n\t\t\t\t\t\tconst radius = 0.00004; \/\/ ~4m\n\t\t\t\t\t\tconst angle = (coordIndex[key]\/count) * (2*Math.PI);\n\t\t\t\t\t\tlat = lat + radius * Math.cos(angle);\n\t\t\t\t\t\tlng = lng + radius * Math.sin(angle);\n\t\t\t\t\t\tcoordIndex[key]++;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst iconUrl = cats.includes(\"allyane-elite\") \n\t\t\t\t\t\t? \"\/wp-content\/uploads\/2025\/08\/marker-elite.png\" \n\t\t\t\t\t\t: \"\/wp-content\/uploads\/2025\/08\/marker.png\";\n\n\t\t\t\t\tconst iconImg = document.createElement(\"img\");\n\t\t\t\t\ticonImg.src = iconUrl;\n\t\t\t\t\ticonImg.style.width=\"40px\";\n\t\t\t\t\ticonImg.style.height=\"56px\";\n\n\t\t\t\t\tconst marker = new google.maps.marker.AdvancedMarkerElement({\n\t\t\t\t\t\tmap: map,\n\t\t\t\t\t\tposition:{lat,lng},\n\t\t\t\t\t\ttitle:$this.data('nom'),\n\t\t\t\t\t\tcontent:iconImg\n\t\t\t\t\t});\n\t\t\t\t\tmarker.categories = cats;\n\t\t\t\t\tmarker.visible = true;\n\n\t\t\t\t\tmarker.addListener(\"click\", () => {\n\t\t\t\t\t\tconst catsNames = $this.data('categories-names') ? $this.data('categories-names').split(',') : [];\n\t\t\t\t\t\tinfoWindow.setContent(`\n\t\t\t\t\t\t\t<div class='infowindow'>\n\t\t\t\t\t\t\t\t${$this.data('pageurl')\n                                    ? `<h6><a href=\"${$this.data('pageurl')}\">${$this.data('nom')} \u2197<\/a><\/h6>` \n                                    : `<h6>${$this.data('nom')}<\/h6>`\n                                }\n\t\t\t\t\t\t\t\t${$this.data('activite') ? $this.data('activite') + \"<br>\" : \"\"}\n\t\t\t\t\t\t\t\t${catsNames.length ? \"<span class='prat-cat'><b>\" + catsNames.join(', ') + \"<\/b><\/span><br>\" : \"\"}\n\t\t\t\t\t\t\t\t${$this.data('adresse') ? $this.data('adresse') + \"<br>\" : \"\"}\n\t\t\t\t\t\t\t\t${$this.data('telephone') ? \"T\u00e9l : \" + $this.data('telephone') : \"\"}\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t`);\n\t\t\t\t\t\tinfoWindow.open(map, marker);\n\t\t\t\t\t});\n\n\t\t\t\t\tmarkers.push(marker);\n\t\t\t\t});\n\n\t\t\t\tif(markerCluster) markerCluster.setMap(null);\n\t\t\t\tmarkerCluster = new markerClusterer.MarkerClusterer({map, markers});\n\t\t\t\tfitMapToMarkers();\n\t\t\t};\n\n            \/\/ On d\u00e9clenche l'affichage initial des markers\n            window.updateMarkers();\n        };\n\n        \/\/ Chargement asynchrone de l'API\n        $(document).ready(function(){\n            if(typeof google === \"undefined\" || !google.maps) {\n                const script = document.createElement('script');\n                script.src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyBZ1bMZyI0Iub4MT_lbjH3iEl10r8hsUYk&libraries=places,marker&callback=initMap\";\n                script.async = true;\n                script.defer = true;\n                document.head.appendChild(script);\n            } else {\n                initMap();\n            }\n        });\n\n        \/\/ Quand les filtres changent\n        $(document).on('praticiensFiltreChange', function(){\n            if(window.updateMarkers) window.updateMarkers();\n        });\n    })(jQuery);\n    <\/script>\n    \t\t<div class=\"elementor-shortcode\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Therapy Galmeon (formerly Allyane) Finda practitioner<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-11272","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Find a Galmeon practitioner near you<\/title>\n<meta name=\"description\" content=\"Galmeon-certified physical therapists, osteopaths, and physicians. Find a practitioner trained in neuromotor reprogramming near you.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Find a Galmeon practitioner near you\" \/>\n<meta property=\"og:description\" content=\"Galmeon-certified physical therapists, osteopaths, and physicians. Find a practitioner trained in neuromotor reprogramming near you.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/\" \/>\n<meta property=\"og:site_name\" content=\"Th\u00e9rapie Galmeon\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-09T14:27:29+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/find-a-practitioner\\\/\",\"url\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/find-a-practitioner\\\/\",\"name\":\"Find a Galmeon practitioner near you\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/#website\"},\"datePublished\":\"2025-09-02T07:45:25+00:00\",\"dateModified\":\"2026-09-09T14:27:29+00:00\",\"description\":\"Galmeon-certified physical therapists, osteopaths, and physicians. Find a practitioner trained in neuromotor reprogramming near you.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/find-a-practitioner\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.galmeon.com\\\/en\\\/find-a-practitioner\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/find-a-practitioner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Find a practitioner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/\",\"name\":\"Th\u00e9rapie Galmeon\",\"description\":\"Dispositif m\u00e9dical brevet\u00e9\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/#organization\",\"name\":\"Th\u00e9rapie Galmeon\",\"url\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.galmeon.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/cropped-logo-galmeon.webp\",\"contentUrl\":\"https:\\\/\\\/www.galmeon.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/cropped-logo-galmeon.webp\",\"width\":1920,\"height\":470,\"caption\":\"Th\u00e9rapie Galmeon\"},\"image\":{\"@id\":\"https:\\\/\\\/www.galmeon.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Find a Galmeon practitioner near you","description":"Galmeon-certified physical therapists, osteopaths, and physicians. Find a practitioner trained in neuromotor reprogramming near you.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/","og_locale":"en_US","og_type":"article","og_title":"Find a Galmeon practitioner near you","og_description":"Galmeon-certified physical therapists, osteopaths, and physicians. Find a practitioner trained in neuromotor reprogramming near you.","og_url":"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/","og_site_name":"Th\u00e9rapie Galmeon","article_modified_time":"2026-09-09T14:27:29+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/","url":"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/","name":"Find a Galmeon practitioner near you","isPartOf":{"@id":"https:\/\/www.galmeon.com\/en\/#website"},"datePublished":"2025-09-02T07:45:25+00:00","dateModified":"2026-09-09T14:27:29+00:00","description":"Galmeon-certified physical therapists, osteopaths, and physicians. Find a practitioner trained in neuromotor reprogramming near you.","breadcrumb":{"@id":"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.galmeon.com\/en\/find-a-practitioner\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.galmeon.com\/en\/find-a-practitioner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.galmeon.com\/en\/"},{"@type":"ListItem","position":2,"name":"Find a practitioner"}]},{"@type":"WebSite","@id":"https:\/\/www.galmeon.com\/en\/#website","url":"https:\/\/www.galmeon.com\/en\/","name":"Th\u00e9rapie Galmeon","description":"Dispositif m\u00e9dical brevet\u00e9","publisher":{"@id":"https:\/\/www.galmeon.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.galmeon.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.galmeon.com\/en\/#organization","name":"Th\u00e9rapie Galmeon","url":"https:\/\/www.galmeon.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.galmeon.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.galmeon.com\/wp-content\/uploads\/2026\/06\/cropped-logo-galmeon.webp","contentUrl":"https:\/\/www.galmeon.com\/wp-content\/uploads\/2026\/06\/cropped-logo-galmeon.webp","width":1920,"height":470,"caption":"Th\u00e9rapie Galmeon"},"image":{"@id":"https:\/\/www.galmeon.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/pages\/11272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/comments?post=11272"}],"version-history":[{"count":5,"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/pages\/11272\/revisions"}],"predecessor-version":[{"id":11816,"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/pages\/11272\/revisions\/11816"}],"wp:attachment":[{"href":"https:\/\/www.galmeon.com\/en\/wp-json\/wp\/v2\/media?parent=11272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}