【问题标题】:Google Maps API v3 marker on click with infowindow使用信息窗口点击 Google Maps API v3 标记
【发布时间】:2013-08-14 01:00:52
【问题描述】:

我的信息窗口有问题。当我点击地图时我创建了标记,但我也想显示信息窗口。此代码不适用于此部分:

google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map, marker);
});

下面是代码..谢谢帮助

var pridat;
var map;

function initialize() {
    var locc = new google.maps.LatLng(49.938682,17.903331);
    var mapOptions = {
        zoom: 14,
        center: locc,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    directionsDisplay.setMap(map);

    var contentwindow = '<div>your point</div>'
    var infowindow = new google.maps.InfoWindow({
        content: contentwindow
    });

    // IF I REMOVE THIS PART -> IT WORKS, BUT WITHOUT INFOWINDOW
    google.maps.event.addListener(marker, 'click', function(){
        infowindow.open(map, marker);
    });
    // END OF PART

    google.maps.event.addListener(map, 'rightclick', function(event) {
        placeMarker(event.latLng);
    });
}

function placeMarker(location) {
    if (marker) {
        marker.setPosition(location);
    } else {
        marker = new google.maps.Marker({
            position: location,
            map: map,
            title: 'My point',
            draggable: true,
        });
    }
}

【问题讨论】:

    标签: javascript google-maps google-maps-markers infowindow


    【解决方案1】:

    当它不起作用时,您应该查看 javascript 错误。您正在尝试在“标记”存在之前使用它。如果将标记的“单击”侦听器移动到它所在的 placeMarker 函数中,并使信息窗口全局可访问,它应该可以工作。您发布的代码没有在地图上放置任何标记。

    var pridat;
    var map;
    var marker = null;
    var infowindow = null;
    function initialize() {
     var locc = new google.maps.LatLng(49.938682,17.903331);
    
     var mapOptions = {
        zoom: 14,
        center: locc,
        mapTypeId: google.maps.MapTypeId.ROADMAP
                      }
    
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    directionsDisplay.setMap(map);
    
    var contentwindow = '<div>your point</div>'
    infowindow = new google.maps.InfoWindow({
        content: contentwindow
     });
    
    google.maps.event.addListener(map, 'rightclick', function(event) {
    placeMarker(event.latLng);
    });
    
    }
    
    function placeMarker(location) {
    if (marker) {
      marker.setPosition(location);
    } else {
     marker = new google.maps.Marker({
          position: location,
          map: map,
          title: 'My point',
          draggable: true,
         });
       // IF I REMOVE THIS PART -> IT WORKS, BUT WITHOUT INFOWINDOW
       google.maps.event.addListener(marker, 'click', function(){
           infowindow.open(map, marker);
       });
     }
    }
    

    working example

    【讨论】:

    • 非常感谢,你帮了我很多...但是我可以在谷歌浏览器中找到 JS 错误。我是 JS 新手,谢谢...
    • Shift-Ctrl-J(或工具:Javascript 控制台)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2011-11-20
    • 2012-06-03
    • 2012-06-06
    • 2011-06-22
    • 2012-03-17
    • 2017-10-30
    相关资源
    最近更新 更多