Google 地图 Api、GeoJson 和 InfoWindow

Google Maps Api, GeoJson and InfoWindow

谁能告诉我为什么第一次点击时信息窗口没有出现? 第一次点击后它总是工作正常...

我只是从 geojson 文件加载数据并尝试添加点击事件。

将信息窗口锚定到 MVCObject 时出现一些问题。

var anchor = new google.maps.MVCObject();
anchor.setValues({//position of the point
    position:event.latLng,
    anchorPoint:new google.maps.Point(0,-40)});

infoWindow.open(map, anchor);   

代码如下: https://jsfiddle.net/ajcL2y9p/

我从 click 侦听器中删除了 var infoWindow,它工作正常。

JSFiddle

像这样:

    var infoWindow = new google.maps.InfoWindow({
        content: "",
        pixelOffset: new google.maps.Size(0, -30)
    });
    // When the user clicks, set 'isColorful', changing the color of the letters.
    map.data.addListener('click', function (event) {

        event.feature.setProperty('isColorful', true);



        infoWindow.setContent('<div>test</div>');

        var anchor = new google.maps.MVCObject();
        anchor.setValues({ //position of the point
            position: event.latLng,
            anchorPoint: new google.maps.Point(0, -40)
        });

        infoWindow.open(map, anchor);

    });

infoWindow 仅在第一次点击时被初始化。如果你把它放在外面你初始化它然后只设置内容。

在函数之外初始化您的信息窗口变量,在 initmap() 中的某些位置;功能。

希望对您有所帮助。