Maison > interface Web > js tutoriel > Comment afficher plusieurs marqueurs avec InfoWindows à l'aide de l'API Google Maps JS v3 ?

Comment afficher plusieurs marqueurs avec InfoWindows à l'aide de l'API Google Maps JS v3 ?

Barbara Streisand
Libérer: 2024-12-20 15:45:10
original
790 Les gens l'ont consulté

How to Display Multiple Markers with InfoWindows using the Google Maps JS API v3?

API Google Maps JS v3 - Exemple simple de marqueurs multiples

Création d'une carte et de marqueurs

Pour commencer, créez un nouveau fichier HTML et incluez le script API Google Maps avec votre clé API. Ensuite, configurez l'objet Map et fournissez-lui les paramètres nécessaires :

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(-33.92, 151.25),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});
Copier après la connexion

Création d'une InfoWindow

Définissez un objet InfoWindow, qui affiche le nom de l'emplacement lors de clic du marqueur :

var infowindow = new google.maps.InfoWindow();
Copier après la connexion

Boucle à travers l'emplacement Données

Ensuite, parcourez votre tableau de données et créez un marqueur pour chaque emplacement, en l'ajoutant à la carte :

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
  });
Copier après la connexion

Définition des événements de clic pour InfoWindows

Enfin, ajoutez un écouteur d'événement à chaque marqueur qui déclenche l'ouverture de l'InfoWindow lorsque cliqué :

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}
Copier après la connexion

Code complet

Le code complet ressemble à ceci :

var locations = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(-33.92, 151.25),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

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));
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal