谷歌地图标记InfoWindow不显示除开始地图位置以外的位置

时间:2014-04-16 13:20:17

标签: javascript google-maps google-maps-api-3 infowindow

当我点击标记时,我试图让信息窗口弹出。但是,infowindow 仅在标记位于等于创建Google地图的位置的位置时显示。任何其他标记位置和infowindow都不会弹出。这似乎是一个非常奇怪的问题。控制台上没有错误。

例如在代码中,如果我将标记的位置设置为传递的lat和long,则用于制作google地图。没事。但是,如果我改变位置(position_val),就像我对lat +1一样,那么infowindow就不会出现了。但是当我点击infowindow时,它确实将地图居中到了infowindow应该出现的位置。听众确实有效,因为我在点击标记时尝试输出console.log()。为什么我不能让标记有不同的位置?为简单起见,我将地图创建和标记创建结合起来。

编辑:jsfiddle链接:http://jsfiddle.net/G3b8M/2/

var map;
var infowindow = new google.maps.InfoWindow({});

function makeMap(lat, long) {


    var myOptions = {
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        position: new google.maps.LatLng(lat, long),
        zoom: 14,

    };

    map = new google.maps.Map( document.getElementById("map_canvas"), myOptions);
    map.setCenter( myOptions.position);

    //position_val = new google.maps.LatLng(lat, long); infowindow works
    position_val = new google.maps.LatLng(lat + 1, long); //infowindow doesn't work

    var marker = new google.maps.Marker({
        position: position_val ,
        map: map,
    });

    map.setCenter(position_val);

    var contentString = 'hello how are you';


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

}

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:2)

我无法告诉你它究竟发生的原因,通常不应该这样,但地图的position属性的纯粹存在(无论价值是多少)似乎是问题。

<强>演示&#39; S:

  1. positionhttp://jsfiddle.net/doktormolle/wqgLR/
  2. 没有positionhttp://jsfiddle.net/doktormolle/wqgLR/1/
  3. 注意:我已经修改了一些代码以减少其他可能的原因。例如您不应该使用long作为标识符,因为它是reserved word

    然而,对我来说,它与原始代码中的另一行一起使用是没有意义的,很奇怪。

    你可以report a bug为此。