Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 如何触发谷歌地图天气图层标记点击?_Google Maps_Weather - Fatal编程技术网

Google maps 如何触发谷歌地图天气图层标记点击?

Google maps 如何触发谷歌地图天气图层标记点击?,google-maps,weather,Google Maps,Weather,我试图点击谷歌地图实例的天气层,以打开城市的天气信息窗口: //Create the map var options = { center: new google.maps.LatLng(49.265984,-123.127491), }; var map = new google.maps.Map(document.getElementById("map_canvas"), options); //Create the weather layer var weatherLayer = n

我试图点击谷歌地图实例的天气层,以打开城市的天气信息窗口:

//Create the map
var options = {
  center: new google.maps.LatLng(49.265984,-123.127491),
};
var map = new google.maps.Map(document.getElementById("map_canvas"), options);

//Create the weather layer
var weatherLayer = new google.maps.weather.WeatherLayer();
weatherLayer.setMap(map);

//Create the event, how?
var event = ?;

//Trigger the click
google.maps.event.trigger(weatherLayer, 'click', event);
问题是我必须传递给触发器函数的事件。这一定是一个例子。这个实例是在用户单击它的一个标记时由层创建的,我不知道如何生成这个事件

谢谢

试试这个:

var infoWindow = new google.maps.InfoWindow();

var wEvent = google.maps.event.addListener(weatherLayer, 'click', myWeatherClick);

function myWeatherClick(wme) {
    infoWindow.setPosition(wme.latLng);
    infoWindow.setContent(wme.infoWindowHtml);
    infoWindow.open(map);
}
触发事件:

var wme = {
        latLng: map.getCenter(),
        infoWindowHtml:'I\'ve been clicked'
    }
    google.maps.event.trigger(weatherLayer, 'click', wme);

目前这是不可能的。我得到一个:

不幸的是,无法通过编程方式打开天气 图层信息窗口。如果您想在API中看到这一点,请提交 功能要求:

以诺


我创建了一个。

谢谢!你能解释一下这个代码吗?据我所知,您正在克隆单击天气层标记时显示的信息窗口。我还注意到您正在将
addListener
方法的返回保存到
wEvent
中。我检查过它,它是一个物体,但我不知道它的用途是什么。最后,如何触发点击事件?我不是在“克隆”信息窗口。InfoWindow是需要实例化的对象。如果要删除事件侦听器,则使用wEvent变量。好的,谢谢!那么,如何使用此代码触发click事件?要触发该事件,需要向事件处理程序发送WeatherMouseEvent。我编辑了回复以包含它。此外,为了避免重复的信息窗口,您可以使用以下命令实例化天气层:var weatherLayer=new google.maps.weather.weatherLayer({suppressInfoWindows:true});