javascript - Google Map Marker InfoWindow 不显示起始 map 位置以外的位置

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

我试图在单击标记时弹出一个信息窗口。然而,信息窗口 仅当标记位于与创建谷歌地图的位置相同的位置时才会显示。任何其他标记位置和信息窗口都不会弹出。这似乎是一个非常奇怪的问题。控制台上没有错误。

例如在代码中,如果我将标记的位置设置为传递的纬度和经度,用于制作谷歌地图。没事。但是如果我稍微改变位置 (position_val),就像我对 lat +1 所做的那样,信息窗口不会显示。但是,当我单击信息窗口时,它会将 map 居中放置在信息窗口应显示的位置。监听器确实有效,因为我尝试在单击标记时输出 console.log() 。为什么我不能让标记有不同的位置?为了简单起见,我结合了 map 创建和标记创建。

编辑: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);
    }); 

}

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

我不能确切地告诉你它为什么会发生,通常它不应该,但是 position 的纯粹存在 - map 属性(无论值是什么)似乎是问题。

演示:

  1. 位置:http://jsfiddle.net/doktormolle/wqgLR/
  2. 没有位置:http://jsfiddle.net/doktormolle/wqgLR/1/

注意:我对您的代码做了一些修改,以减少其他可能的原因。例如你不应该使用 long 作为标识符,因为它是一个 reserved word .

但是,奇怪的是,它与原始代码中的另一行一起工作对我来说毫无意义。

您可以 report a bug为此。

关于javascript - Google Map Marker InfoWindow 不显示起始 map 位置以外的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23110710/

相关文章:

ios - 在谷歌地图 iOS SDK 中获取两点之间的路线

javascript - 谷歌地图在城市内自动完成

google-maps-api-3 - Google Map API v3 中等效的 GInfoWindowTab 函数

javascript - AngularJS 选择属性值而不是对象

javascript - 如何避免 JavaScript 中的短路求值?

javascript - ES6 模块范围

javascript - Google Maps API v3 InfoWindow 首先出现在不正确的位置,然后正确加载

javascript - Mapbox 不与另一个 .geojson 文件一起使用的示例

android - 谷歌地图 "OVER_QUERY_LIMIT"

javascript - 通过独特的链接使 Google map 标记可点击