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 ! 🚀