javascript - 使用信息窗口点击时的 Google Maps API v3 标记

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

我对信息窗口有疑问。我在点击 map 时创建了标记,但我也想显示信息窗口。此代码不适用于此部分:

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 错误。您正试图在“标记”存在之前使用它。如果将标记的“点击”监听器移动到它所在的 placeMarker 函数中,并使信息窗口可全局访问,它应该可以工作。您发布的代码没有在 map 上放置任何标记。

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

关于javascript - 使用信息窗口点击时的 Google Maps API v3 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18191695/

相关文章:

javascript - 如何从字符串中删除文本?

javascript - 带有 Google map 绘图的自定义按钮

javascript - 缩放时标记改变位置

javascript - req.body 和 res.render 得到不完整的值

Javascript:是否有可能在 anchor 元素上返回 false,但仍然更新 url 而没有任何不稳定的移动?

javascript - 如何在 React 应用程序中预取视频?

internet-explorer - 谷歌地图 + Jquery : Marker bug in IE

google-maps - 天然气的安全性

javascript - 删除 gmappanel 标记 -EXTJS 4

javascript - 如何在 Google map 中的方向变化之间实现平滑过渡?