【问题标题】:How to get an infoWindow clicking on a Marker如何获取单击标记的信息窗口
【发布时间】:2013-05-23 10:36:48
【问题描述】:

我想知道如何在单击标记时打开信息窗口,我认为这是正确的,但不起作用。 这是脚本

var map;
function initialize() {
    navigator.geolocation.getCurrentPosition(function(position){
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        var coords = new google.maps.LatLng(latitude, longitude);
        var mapOptions = {
            disableDefaultUI: true,
            center: coords,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            };
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
        placeMarker();
        var infowindow = new google.maps.InfoWindow();
        google.maps.event.addListener(marker, 'click', function() {
            getComment(marker, infowindow);
      });
});
}
function getComment(marker, infowindow){
    var message = "Hello";
    infowindow.setContent(message);
    infowindow.open(map, marker);
}
function placeMarker() {
    //place some marker
}
google.maps.event.addDomListener(window, 'load', initialize);

感谢您的任何建议!

【问题讨论】:

标签: javascript google-maps events infowindow


【解决方案1】:

没有在 jsfiddle 中运行它,但下面的代码应该可以工作。

你必须在你的函数placeMarker()之外定义var marker,就像你对infoWindow所做的那样。

var map;
function initialize() {
    navigator.geolocation.getCurrentPosition(function(position){
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        var coords = new google.maps.LatLng(latitude, longitude);
        var mapOptions = {
            disableDefaultUI: true,
            center: coords,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            };
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

        //position of marker = coords in this example
        var marker = new google.maps.Marker({
            position: coords,
            map: map,
            title: "randomTitle",
            zIndex: Math.round(latlng.lat()*-100000)<<5
        });
        var infowindow = new google.maps.InfoWindow();
        google.maps.event.addListener(marker, 'click', function() {
            getComment(marker, infowindow);
      });
});
}
function getComment(marker, infowindow){
    var message = "Hello";
    infowindow.setContent(message);
    infowindow.open(map, marker);
}
google.maps.event.addDomListener(window, 'load', initialize);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2012-08-11
    相关资源
    最近更新 更多