(function(){ var path=window.location.pathname; var isMonaco=path.indexOf("monaco")>-1; var isParis=!isMonaco&&path.indexOf("prix-m2-paris")>-1; if(!isMonaco&&!isParis)return; var MC=[ {a:"Avenue Princesse Grace",lat:43.7378,lon:7.4365}, {a:"Boulevard du Larvotto",lat:43.7375,lon:7.4358}, {a:"Place du Casino",lat:43.7394,lon:7.4282}, {a:"Boulevard des Moulins",lat:43.7400,lon:7.4262}, {a:"Avenue des Beaux-Arts",lat:43.7396,lon:7.4271}, {a:"Rue Grimaldi",lat:43.7362,lon:7.4215}, {a:"Boulevard Albert Ier",lat:43.7368,lon:7.4222}, {a:"Avenue Prince Pierre",lat:43.7370,lon:7.4208}, {a:"Rue Caroline",lat:43.7358,lon:7.4210}, {a:"Quai des Etats-Unis",lat:43.7366,lon:7.4230}, {a:"Avenue de Fontvieille",lat:43.7310,lon:7.4151}, {a:"Rue des Iris",lat:43.7308,lon:7.4138}, {a:"Boulevard de Belgique",lat:43.7442,lon:7.4192}, {a:"Boulevard du Jardin Exotique",lat:43.7328,lon:7.4082}, {a:"Rue Honore Labande",lat:43.7332,lon:7.4090}, {a:"Boulevard de France",lat:43.7338,lon:7.4062}, {a:"Rue des Moneghetti",lat:43.7342,lon:7.4055}, {a:"Chemin des Revoires",lat:43.7335,lon:7.4048}, {a:"Rue Basse",lat:43.7308,lon:7.4211}, {a:"Place du Palais",lat:43.7312,lon:7.4205}, {a:"Rue de la Turbie",lat:43.7298,lon:7.4222}, {a:"Rue Colonel Bellando de Castro",lat:43.7305,lon:7.4218}, {a:"Avenue de Mareterra",lat:43.7343,lon:7.4352} ]; function mcSearch(query){ var q=(query||"").toLowerCase().replace(/^\d+\s*/,"").trim(); if(q.length<2)return[]; var numMatch=query.match(/^\d+/); var num=numMatch?numMatch[0]:"1"; return MC.filter(function(s){return s.a.toLowerCase().indexOf(q)>-1;}) .slice(0,6).map(function(s,i){ var nameVal=num+" "+s.a; return{type:"Feature", geometry:{type:"Point",coordinates:[s.lon,s.lat]}, properties:{label:nameVal+", Monaco",name:nameVal,street:s.a, housenumber:num,city:"Monaco",postcode:"98000",id:"mc"+i, x:s.lon,y:s.lat,score:1,type:"housenumber",importance:0.9} }; }); } var origF=window.fetch; window.fetch=function(url,opts){ if(typeof url!=="string"||url.indexOf("api-adresse.data.gouv.fr")<0){ return origF.apply(this,arguments); } /* PARIS : biais geographique vers Paris (48.8566,2.3522) Supprime "+paris" en fin de query (ajoute par le script, cause "Rue de Paris" matching) Ajoute lat/lon pour privilegier les rues parisiennes */ if(isParis){ if(url.indexOf("type=housenumber")>-1){ return Promise.resolve({ok:true,status:200, json:function(){return Promise.resolve({type:"FeatureCollection",features:[],version:"draft"});} }); } /* Retire paris de la fin de la query */ url=url.replace(/([?&]q=)([^&]+)/,function(m,p1,p2){ var q=decodeURIComponent(p2).replace(/\+/g," ").replace(/[\s+]paris\s*$/i,"").trim(); return p1+encodeURIComponent(q); }); /* Ajoute biais geographique Paris */ if(url.indexOf("lat=")<0){url+="&lat=48.8566&lon=2.3522&limit=5";} return origF(url,opts); } /* MONACO */ var qm=url.match(/[?&]q=([^&]+)/); var rawQ=qm?decodeURIComponent(qm[1]).replace(/\+/g," "):""; var q=rawQ.replace(/\s*paris\s*/gi," ").trim(); var features=mcSearch(q); return Promise.resolve({ok:true,status:200, json:function(){return Promise.resolve({type:"FeatureCollection",features:features,version:"draft"});} }); }; })();