【问题标题】:Google Map Marker InfoWindow Not Showing for location other than starting map locationGoogle Map Marker InfoWindow 不显示起始地图位置以外的位置
【发布时间】:2014-04-16 13:20:17
【问题描述】:

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

例如在代码中,如果我将标记的位置设置为传递的经纬度,用于制作谷歌地图。没事。但是,如果我稍微改变位置 (position_val),就像我对 lat +1 所做的那样,信息窗口不会出现。但是当我单击信息窗口时,它确实将地图居中到信息窗口应该显示的位置。侦听器确实有效,因为我尝试在单击标记时输出 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);
    }); 

}

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

【问题讨论】:

  • 这确实很奇怪,我会假设 infowindow 定位在尝试使用 lat + 1 部分时中断或放错了位置...您是否尝试过 LatLng((lat + 1), long)还是什么?
  • 感谢您的建议,但没有奏效。我也尝试过硬编码值。
  • 您能否向我们展示您调用makeMap 的代码,包括您使用的纬度/经度值示例?
  • 如果你这样做会发生什么lat += 1; position_val = new google.maps.LatLng(lat, long);
  • 还是同样的问题。我将它添加到 jsFiddle。 jsfiddle.net/G3b8M/1如果你换掉位置值,你可以看到它在第 21 行和第 22 行工作而不工作

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


【解决方案1】:

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

演示:

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

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

但是,对我来说,它与原始代码中的另一行一起工作是没有意义的,很好奇。

您可以为此report a bug

【讨论】:

  • 谢谢。非常不错的收获。我正在查看谷歌地图属性,看起来position 不是列出的属性。不过,您仍然可以使用position 更改谷歌地图的显示位置。所以我一开始就不应该使用positiondevelopers.google.com/maps/documentation/javascript/…
猜你喜欢
  • 2017-08-15
  • 2015-07-04
  • 1970-01-01
  • 2015-05-16
  • 2022-01-09
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多