L’intégration d’une carte interactive sur un site web immobilier permet aux utilisateurs de visualiser facilement les propriétés disponibles selon leur localisation. Grâce à Google Maps API, vous pouvez afficher les propriétés dynamiquement avec des marqueurs, des fenêtres d’informations, et des filtres interactifs.
Dans cet article, nous allons explorer comment :
Google Maps nécessite une clé API pour fonctionner. Voici comment l’obtenir :
Créer un compte Google Cloud :
Générer une clé API :
Dans le fichier HTML de votre projet, ajoutez ce script Google Maps en remplaçant YOUR_API_KEY
par votre clé API :
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Carte Interactive – Propriétés Immobilières</title> <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script> <style> #map { height: 600px; width: 100%; } </style> </head> <body> <h1>Carte Interactive des Propriétés</h1> <div id="map"></div> <script> function initMap() { var map = new google.maps.Map(document.getElementById("map"), { center: { lat: 45.5017, lng: -73.5673 }, // Coordonnées de Montréal zoom: 12, }); } </script> </body> </html>
Ajoutons des marqueurs dynamiques pour afficher les propriétés immobilières.
Ajoutez ce code dans le <script>
de votre page :
<script> function initMap() { var map = new google.maps.Map(document.getElementById("map"), { center: { lat: 45.5017, lng: -73.5673 }, zoom: 12, }); var properties = [ { name: "Appartement Centre-Ville", lat: 45.508, lng: -73.554, price: "450 000 $", image: "https://via.placeholder.com/100" }, { name: "Maison à Laval", lat: 45.6, lng: -73.75, price: "650 000 $", image: "https://via.placeholder.com/100" } ]; properties.forEach(function(property) { var marker = new google.maps.Marker({ position: { lat: property.lat, lng: property.lng }, map: map, title: property.name, }); var infoWindow = new google.maps.InfoWindow({ content: `<div> <h3>${property.name}</h3> <img src="${property.image}" width="100"> <p>Prix : ${property.price}</p> </div>` }); marker.addListener("click", function() { infoWindow.open(map, marker); }); }); } </script>
properties
contenant les coordonnées, noms et prix des propriétés.Ajoutons un formulaire pour filtrer les propriétés par prix ou type.
Ajoutez ce code dans votre body
avant <div id="map"></div>
:
<select id="filter" onchange="filterProperties()"> <option value="all">Toutes les propriétés</option> <option value="appartement">Appartements</option> <option value="maison">Maisons</option> </select>
Puis, mettez à jour le script pour inclure le filtre :
<script> var properties = [ { name: "Appartement Centre-Ville", lat: 45.508, lng: -73.554, price: "450 000 $", type: "appartement", image: "https://via.placeholder.com/100" }, { name: "Maison à Laval", lat: 45.6, lng: -73.75, price: "650 000 $", type: "maison", image: "https://via.placeholder.com/100" } ]; var markers = []; function initMap() { var map = new google.maps.Map(document.getElementById("map"), { center: { lat: 45.5017, lng: -73.5673 }, zoom: 12, }); properties.forEach(function(property) { var marker = new google.maps.Marker({ position: { lat: property.lat, lng: property.lng }, map: map, title: property.name, }); var infoWindow = new google.maps.InfoWindow({ content: `<div> <h3>${property.name}</h3> <img src="${property.image}" width="100"> <p>Prix : ${property.price}</p> </div>` }); marker.addListener("click", function() { infoWindow.open(map, marker); }); markers.push({ marker, type: property.type }); }); } function filterProperties() { var selectedType = document.getElementById("filter").value; markers.forEach(function(obj) { if (selectedType === "all" || obj.type === selectedType) { obj.marker.setMap(map); } else { obj.marker.setMap(null); } }); } </script>
filterProperties()
affiche uniquement les propriétés du type sélectionné.
Grâce à Google Maps API, vous pouvez créer une carte interactive qui affiche les propriétés immobilières de manière intuitive et dynamique. Ce système peut être enrichi avec :
Vous souhaitez intégrer cette solution à votre site immobilier ? Contactez-nous pour une mise en place sur mesure ! 🚀