Google Maps Api,GeoJson和InfoWindow

时间:2015-05-22 13:27:12

标签: javascript google-maps maps geojson

有人能告诉我为什么InfoWindow在第一次点击时没有显示? 第一次点击后,它总能正常工作......

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

将infowindow锚定到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/

2 个答案:

答案 0 :(得分:0)

我从var infoWindow侦听器中移除了click,它运行正常。

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仅在首次点击时初始化。如果你把它放在外面你初始化它然后只设置内容。

答案 1 :(得分:0)

将你的infowindow变量初始化为函数,在initmap()中的某些位置;功能。

希望这会对你有所帮助。