繁体   English   中英

Google地图和地图上的标记

[英]Google maps and marker on map

我需要在地图上显示标记,并为每个标记显示一些信息的弹出窗口。 这是我的代码:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
    var createMap = function() {
        var address = document.getElementById("address").value;
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode( {'address': address}, function(results,status){
            if (status == google.maps.GeocoderStatus.OK) {
                var options = {
                    zoom: 12,
                    center: results[0].geometry.location,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                var map = new google.maps.Map(document.getElementById('map'), options);
                setMarkers(map, sites);
            } 
            else {
                alert("Problema nella ricerca dell'indirizzo: " + status);
            }
        });
    }

    //Aggiungo i marker alla mappa
    function setMarkers(map, markers) {
        for (var i = 0; i < markers.length; i++) {
            var sites = markers[i];
            var siteLatLng = new google.maps.LatLng(sites[1], sites[2]);
            var marker = new google.maps.Marker({
                position: siteLatLng,
                map: map,
                title: sites[0],
                zIndex: sites[3],
                html: "<b>"+sites[0]+"</b><br>"+sites[4]
            });

            google.maps.event.addListener(marker, "click", function () {               
                infowindow.setContent(this.html);
                infowindow.open(map, this);
            });
        }
    }

    //Elenco dei marcatori da aggiungere
    var sites = [[ 'Veterinari Associati', 45.448405,9.19823 , 1 , 'Via Palladio 4 - 20100 Milano (MI)'],];


    window.onload = createMap;
</script>
<input id="address" type="hidden" value="Milan">
<div id="map" style="width:345px; height:306px;"></div>

一切正常,标记已放置,但当我单击市场时,弹出窗口没有显示。 我不明白问题出在哪里...

您可以初始化信息窗口,试试这个

google.maps.event.addListener(marker, "click", function () {  
  var infowindow = new google.maps.InfoWindow();
  infowindow.setContent(this.html);
  infowindow.open(map, this);
});

这是因为在设置和打开它之前,尚未设置信息窗口。 插入此:

var infowindow = new google.maps.InfoWindow();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM