Google Maps API Multiple Markers with Infowindows

前端 未结 5 1677
挽巷
挽巷 2020-11-30 17:45

I am trying to add multiple markers each with its own infowindow that comes up when clicked on. I am having trouble with getting the infowindows coming up, when I try it eit

5条回答
  •  谎友^
    谎友^ (楼主)
    2020-11-30 18:07

    Source Link

    Demo Link

    The following code will show Multiple Markers with InfoWindow. You can Uncomment code to show Info on Hover as well

                var map;
                var InforObj = [];
                var centerCords = {
                    lat: -25.344,
                    lng: 131.036
                };
                var markersOnMap = [{
                        placeName: "Australia (Uluru)",
                        LatLng: [{
                            lat: -25.344,
                            lng: 131.036
                        }]
                    },
                    {
                        placeName: "Australia (Melbourne)",
                        LatLng: [{
                            lat: -37.852086,
                            lng: 504.985963
                        }]
                    },
                    {
                        placeName: "Australia (Canberra)",
                        LatLng: [{
                            lat: -35.299085,
                            lng: 509.109615
                        }]
                    },
                    {
                        placeName: "Australia (Gold Coast)",
                        LatLng: [{
                            lat: -28.013044,
                            lng: 513.425586
                        }]
                    },
                    {
                        placeName: "Australia (Perth)",
                        LatLng: [{
                            lat: -31.951994,
                            lng: 475.858081
                        }]
                    }
                ];
    
                window.onload = function () {
                    initMap();
                };
    
                function addMarkerInfo() {
                    for (var i = 0; i < markersOnMap.length; i++) {
                        var contentString = '

    ' + markersOnMap[i].placeName + '

    Lorem ipsum dolor sit amet, vix mutat posse suscipit id, vel ea tantas omittam detraxit.

    '; const marker = new google.maps.Marker({ position: markersOnMap[i].LatLng[0], map: map }); const infowindow = new google.maps.InfoWindow({ content: contentString, maxWidth: 200 }); marker.addListener('click', function () { closeOtherInfo(); infowindow.open(marker.get('map'), marker); InforObj[0] = infowindow; }); // marker.addListener('mouseover', function () { // closeOtherInfo(); // infowindow.open(marker.get('map'), marker); // InforObj[0] = infowindow; // }); // marker.addListener('mouseout', function () { // closeOtherInfo(); // infowindow.close(); // InforObj[0] = infowindow; // }); } } function closeOtherInfo() { if (InforObj.length > 0) { InforObj[0].set("marker", null); InforObj[0].close(); InforObj.length = 0; } } function initMap() { map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: centerCords }); addMarkerInfo(); }

提交回复
热议问题