Bonjour,
Je souhaite filtrer les résultats d'une recherche avec une liste déroulante en utilisant Google Maps JavaScript API
Mes compétences s’arrêtent au code ci-dessous et après de nombreuses recherches je ne parviens pas à enlever un ou deux markers sur ma carte selon le choix de ma liste déroulante (voir les hôtels ou les restos).
Donc j'ai juste mis le code de la liste déroulante sur ma page index.html et je ne sais pas comment cela pourrait se coder dans ma page script.js (tout le reste fonctionne! infobulles, markers...).
Voici le code :
index.html
script.js
J'ai enlevé ma clé API mais je crois que la carte peut s'afficher sans clé aussi...
Merci d'avance [/i][/i][/i]
Modifié par woubi (22 Jan 2016 - 12:05)
Je souhaite filtrer les résultats d'une recherche avec une liste déroulante en utilisant Google Maps JavaScript API
Mes compétences s’arrêtent au code ci-dessous et après de nombreuses recherches je ne parviens pas à enlever un ou deux markers sur ma carte selon le choix de ma liste déroulante (voir les hôtels ou les restos).
Donc j'ai juste mis le code de la liste déroulante sur ma page index.html et je ne sais pas comment cela pourrait se coder dans ma page script.js (tout le reste fonctionne! infobulles, markers...).
Voici le code :
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Google Maps APIs</title>
<link href="style.css" rel="stylesheet">
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> -->
</head>
<body>
<div id="map" style="width:500px;height:380px;"></div>
<select id="type" onchange="filterMarkers(this.value);">
<option value="">Please select category</option>
<option value="resto">restaurants</option>
<option value="hotel">hotels</option>
</select>
<script src="script.js"></script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=MyAPIkey&callback=initMap"></script><br>
</body>
</html>
script.js
//var restaurant1;
//var restaurant2;
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 8,
center: new google.maps.LatLng(43.349250, 5.416117),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
restaurant1 = {
info: '<strong>Restaurant1</strong><br>\
Description...<br>\
Adresse<br>\
<a href="https://www.google.fr">Adresse 1</a>',
lat: 43.1873178,
long: 5.625988300000017
};
restaurant2 = {
info: '<strong>restaurant2</strong><br>\
Description...<br>\
Adresse<br>\
<a href="https://www.google.fr">Adresse 2</a>',
lat: 43.2579328,
long: 5.383642699999996
};
hotel1 = {
info: '<strong>hotel1</strong><br>\
Description...<br>\
Adresse<br>\
<a href="https://www.google.fr">Adresse 1</a>',
lat: 43.3079328,
long: 5.953642699999996
};
var locations = [
[restaurant1.info, restaurant1.lat, restaurant1.long, 0],
[restaurant2.info, restaurant2.lat, restaurant2.long, 1],
[hotel1.info, hotel1.lat, hotel1.long, 2],
];
var infowindow = new google.maps.InfoWindow({});
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
// Removes the markers from the map, but keeps them in the array.
function clearMarkers() {
setMapOnAll(null);
}
// gmarkers1.push(marker1);
}
}
J'ai enlevé ma clé API mais je crois que la carte peut s'afficher sans clé aussi...
Merci d'avance [/i][/i][/i]
Modifié par woubi (22 Jan 2016 - 12:05)