var magasins = []; var magasins_proche = []; var rayon = 140; //rayon de recherche d'un magasin en km var nb_mags_affiches = 4; magasins.push({nom:'Thoiry',cp:'01710',url:'-Thoiry-',coord:{lat:46.2256792665245,lon:5.99010765552521},distance:0}); magasins.push({nom:'Gap',cp:'05000',url:'-Gap-',coord:{lat:44.5656647656156,lon:6.10133349895477},distance:0}); magasins.push({nom:'Nice - Saint Isidore',cp:'06200',url:'-Nice-Saint-Isidore-',coord:{lat:43.7100190231121,lon:7.19224289059639},distance:0}); magasins.push({nom:'Cannes',cp:'06210',url:'-Cannes-',coord:{lat:43.55581449645443,lon:6.955670714378357},distance:0}); magasins.push({nom:'Soyons',cp:'07130',url:'-Soyons-',coord:{lat:44.918724,lon:4.861704},distance:0}); magasins.push({nom:'Marseille',cp:'13400',url:'-Marseille-',coord:{lat:43.2871636358025,lon:5.52964746952057},distance:0}); magasins.push({nom:'Aurillac',cp:'15000',url:'-Aurillac-',coord:{lat:44.902141,lon:2.429404},distance:0}); magasins.push({nom:'Périgueux',cp:'24750',url:'-Perigueux-',coord:{lat:45.184167,lon:0.763611},distance:0}); magasins.push({nom:'Montélimar',cp:'26200',url:'-Montelimar-',coord:{lat:44.538056,lon:4.730833},distance:0}); magasins.push({nom:'Louviers',cp:'27400',url:'-Louviers-',coord:{lat:49.2102241942317,lon:1.1719536781311},distance:0}); magasins.push({nom:'Chartres',cp:'28630',url:'-Chartres-',coord:{lat:48.415605,lon:1.476577},distance:0}); magasins.push({nom:'Brest',cp:'29200',url:'-Brest-',coord:{lat:48.418179046944545,lon:-4.460095167160035},distance:0}); magasins.push({nom:'Alès',cp:'30100',url:'-Ales-',coord:{lat:44.1277827130444,lon:4.07150745391846},distance:0}); magasins.push({nom:'Nîmes',cp:'30900',url:'-Nimes-',coord:{lat:43.8088117185566,lon:4.36453342437744},distance:0}); magasins.push({nom:'Toulouse - Blagnac',cp:'31700',url:'-Toulouse-Blagnac-',coord:{lat:43.643823987685,lon:1.37472867965698},distance:0}); magasins.push({nom:'Toulouse - Colomiers',cp:'31770',url:'-Toulouse-Colomiers-',coord:{lat:43.6107524930182,lon:1.30989968776703},distance:0}); magasins.push({nom:'Bordeaux-Mérignac',cp:'33700',url:'-Merignac-',coord:{lat:44.83226222491697,lon:-0.656403601169586},distance:0}); magasins.push({nom:'Bordeaux-Bouliac',cp:'33270',url:'-Bouliac-',coord:{lat:44.818209311408445,lon:-0.527633428573608},distance:0}); magasins.push({nom:'Langon',cp:'33210',url:'-Langon-218-',coord:{lat:44.54326434370825,lon:-0.24334609508514402},distance:0}); magasins.push({nom:'Montpellier',cp:'34970',url:'-Montpellier-',coord:{lat:43.5842495562259,lon:3.93365800380707},distance:0}); magasins.push({nom:'Béziers',cp:'34420',url:'-Beziers-',coord:{lat:43.3309920674674,lon:3.28967571258545},distance:0}); magasins.push({nom:'Charancieu',cp:'38490',url:'-Charancieu-',coord:{lat:45.5270431577564,lon:5.59176206588745},distance:0}); magasins.push({nom:'Romorantin',cp:'41200',url:'-Romorantin-',coord:{lat:47.3409892652249,lon:1.74954056739807},distance:0}); magasins.push({nom:'Saint-Etienne',cp:'42100',url:'-Saint-Etienne-',coord:{lat:45.443714,lon:4.42593},distance:0}); magasins.push({nom:'Nantes',cp:'44800',url:'-Nantes-',coord:{lat:47.2399384411887,lon:-1.59134656190872},distance:0}); magasins.push({nom:'Orléans',cp:'45770',url:'-Orleans-',coord:{lat:47.9473189692425,lon:1.89186125993729},distance:0}); magasins.push({nom:'Agen - Boe',cp:'47550',url:'-Agen-',coord:{lat:44.18119219602657,lon:0.635163187980652},distance:0}); magasins.push({nom:'Cholet',cp:'49300',url:'-Cholet-',coord:{lat:47.071152,lon:-0.839591},distance:0}); magasins.push({nom:'Nancy',cp:'54 180',url:'-Nancy-',coord:{lat:48.6497279526343,lon:6.18380069732666},distance:0}); magasins.push({nom:'Lorient',cp:'56100',url:'-Lorient-',coord:{lat:47.765854078125,lon:-3.40138435363769},distance:0}); magasins.push({nom:'Metz',cp:'57130',url:'-Metz-',coord:{lat:49.0731525232015,lon:6.09708487987518},distance:0}); magasins.push({nom:'Marchiennes',cp:'59870',url:'-Marchiennes-',coord:{lat:50.421671,lon:3.264542},distance:0}); magasins.push({nom:'Chambly',cp:'60230',url:'-Chambly-',coord:{lat:49.1571516752435,lon:2.25232601165771},distance:0}); magasins.push({nom:'Clermont-Ferrand - Cournon',cp:'63800',url:'-Clermont-Ferrand-',coord:{lat:45.73903109525129,lon:3.198308944702148},distance:0}); magasins.push({nom:'Anglet',cp:'64600',url:'-Anglet-44-',coord:{lat:43.4963202385198,lon:-1.49853408336639},distance:0}); magasins.push({nom:'Pau',cp:'64230',url:'-Pau-',coord:{lat:43.3215443808594,lon:-0.425049662590027},distance:0}); magasins.push({nom:'Perpignan',cp:'66600',url:'-Perpignan-',coord:{lat:42.7750228742473,lon:2.91043281555176},distance:0}); magasins.push({nom:'Dorlisheim',cp:'67120',url:'-Dorlisheim-',coord:{lat:48.5244212399093,lon:7.48866856098175},distance:0}); magasins.push({nom:'Cernay',cp:'68700',url:'-Cernay-94-',coord:{lat:47.8046519745125,lon:7.2024393081665},distance:0}); magasins.push({nom:'Colmar',cp:'68000',url:'-Colmar-',coord:{lat:48.1035911248339,lon:7.36357569694519},distance:0}); magasins.push({nom:'Lyon-Est',cp:'69780',url:'-Lyon-Est-',coord:{lat:45.6768540124705,lon:4.96749401092529},distance:0}); magasins.push({nom:'Lyon Ouest',cp:'69630',url:'-Lyon-Ouest-',coord:{lat:45.710711976283825,lon:4.770764708518982},distance:0}); magasins.push({nom:'Lyon-Nord',cp:'69410',url:'-Lyon-Nord-',coord:{lat:45.8055705142583,lon:4.78009879589081},distance:0}); magasins.push({nom:'Lyon-centre',cp:'69005',url:'-Lyon-centre-',coord:{lat:45.767299,lon:4.824615},distance:0}); magasins.push({nom:'Vesoul',cp:'70000',url:'-Vesoul-',coord:{lat:47.6155189041999,lon:6.14168465137482},distance:0}); magasins.push({nom:'Albertville',cp:'73200',url:'-Albertville-',coord:{lat:45.6557179964976,lon:6.35954976081848},distance:0}); magasins.push({nom:'Thonon-les-Bains',cp:'74200',url:'-Thonon-les-Bains-',coord:{lat:46.370495853261,lon:6.4850127696991},distance:0}); magasins.push({nom:'Annecy',cp:'74600',url:'-Annecy-',coord:{lat:45.8775506753581,lon:6.09054565429688},distance:0}); magasins.push({nom:'Sallanches',cp:'74700',url:'-Sallanches-',coord:{lat:45.94588,lon:6.62966},distance:0}); magasins.push({nom:'Paris 12ème',cp:'75012',url:'-Paris-12eme-',coord:{lat:48.843487,lon:2.382936},distance:0}); magasins.push({nom:'Paris 15ème',cp:'75015',url:'-Paris-15eme-',coord:{lat:48.83675,lon:2.289415},distance:0}); magasins.push({nom:'Le Havre',cp:'76700',url:'-Le-Havre-',coord:{lat:49.5090139,lon:0.22840833333333335},distance:0}); magasins.push({nom:'Pontault Combault',cp:'77340',url:'-Pontault-Combault-',coord:{lat:48.774847,lon:2.601752},distance:0}); magasins.push({nom:'Dammarie les Lys',cp:'77190',url:'-Dammarie-',coord:{lat:48.50676401090143,lon:2.608072757720947},distance:0}); magasins.push({nom:'Rambouillet',cp:'78125',url:'-Rambouillet-',coord:{lat:48.6236617488097,lon:1.8242883682251},distance:0}); magasins.push({nom:'Buchelay',cp:'78200',url:'-Buchelay-',coord:{lat:48.989019,lon:1.676971},distance:0}); magasins.push({nom:'Niort',cp:'79000',url:'-Niort-',coord:{lat:46.302374,lon:-0.487728},distance:0}); magasins.push({nom:'Amiens-Métropole',cp:'80450',url:'-Amiens-',coord:{lat:49.899746,lon:2.339526},distance:0}); magasins.push({nom:'Castres',cp:'81100',url:'-Castres-',coord:{lat:43.589883,lon:2.196489},distance:0}); magasins.push({nom:'Fréjus',cp:'83600',url:'-Frejus-',coord:{lat:43.427629,lon:6.749439},distance:0}); magasins.push({nom:'Toulon',cp:'83190',url:'-Toulon-',coord:{lat:43.1226078065391,lon:5.84712982177734},distance:0}); magasins.push({nom:'Cavaillon',cp:'84300',url:'-Cavaillon-',coord:{lat:43.8529354294904,lon:5.02552628517151},distance:0}); magasins.push({nom:'Limoges',cp:'87280',url:'-Limoges-',coord:{lat:45.882581,lon:1.285646},distance:0}); magasins.push({nom:'Corbeil',cp:'91100',url:'-Corbeil-',coord:{lat:48.6140018168675,lon:2.4547952413559},distance:0}); magasins.push({nom:'Villebon',cp:'91140',url:'-Villebon-',coord:{lat:48.7018482824591,lon:2.25626349449158},distance:0}); magasins.push({nom:'Chatillon',cp:'92320',url:'-Chatillon-',coord:{lat:48.8088012752865,lon:2.28354692459106},distance:0}); magasins.push({nom:'Boulogne-Billancourt',cp:'92100',url:'-Boulogne-Billancourt-',coord:{lat:48.82487147124097,lon:2.2360610961914067},distance:0}); magasins.push({nom:'Bonneuil',cp:'94380',url:'-Bonneuil-',coord:{lat:48.765751,lon:2.491461},distance:0}); magasins.push({nom:'Herblay',cp:'95220',url:'-Herblay-',coord:{lat:49.0015834931981,lon:2.1845680475235},distance:0}); magasins.push({nom:'Saint Denis (La réunion)',cp:'97400',url:'-Saint-Denis-La-Reunion-',coord:{lat:-20.8831321117907,lon:55.4632008075714},distance:0}); magasins.push({nom:'Baie-Mahault',cp:'97122',url:'-Baie-Mahault-Guadeloupe-',coord:{lat:16.253967,lon:-61.567785},distance:0}); var rad = function(x) { return x * Math.PI / 180; }; var getDistance = function(p1, p2) { var R = 6378; // rayon approx de la terre en km var dLat = rad(p2.lat - p1.lat); var dLong = rad(p2.lng - p1.lng); var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(rad(p1.lat)) * Math.cos(rad(p2.lat)) * Math.sin(dLong / 2) * Math.sin(dLong / 2); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); var d = R * c; return d; // la distance en km }; function is_he_nearby(coord_mag, coord_customer) { var distance = getDistance({ lat: coord_mag.lat, lng: coord_mag.lon }, { lat: coord_customer.lat(), lng: coord_customer.lng() }); /*console.log("mag.lon:"+coord_mag.lon+"/mag.lat:"+coord_mag.lat+"/customer.lon:"+coord_customer.lng()+"/customer.lat:"+coord_customer.lat() +"distance:"+distance);*/ return { distance: distance, near: (distance < rayon) }; } function tri_mag(a, b) { if (a.distance < b.distance) return -1; else if (a.distance == b.distance) return 0; else return 1; } function find_mag(coord_custom,cible) { console.log("find_mag"); //rayon = document.getElementById('autocomplete').value; magasins_proche = []; for (var i in magasins) { var isi_near = is_he_nearby(magasins[i].coord, coord_custom); if (isi_near.near) { magasins[i].distance = isi_near.distance; magasins_proche.push(magasins[i]); //console.log(magasins[i].nom + " à " + isi_near.distance + "km"); } } magasins_proche.sort(tri_mag); draw(cible); //console.log(magasins_proche); } function reset(){ input_adresse1.blur(); setTimeout(function(){input_adresse1.val = '';},10); } function draw(cible) { var retour_html = ""; //var retour_html = "
" + mag.nom + " - "+mag.cp +" "+Math.round(mag.distance) + "km
"; } //retour_html += "