【问题标题】:How to trigger Google Maps Weather Layer marker click?如何触发谷歌地图天气层标记点击?
【发布时间】:2012-07-06 18:54:27
【问题描述】:

我正在尝试触发对谷歌地图实例的天气层的点击以打开城市的天气信息窗口:

//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);

问题是我必须传递给触发函数的事件。它必须是WeatherMouseEvent 的实例。这个实例是当用户点击它的一个标记时由图层创建的,我不知道如何生成这个事件。

谢谢!

【问题讨论】:

    标签: google-maps weather


    【解决方案1】:

    试试这个:

    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);
    

    【讨论】:

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

    目前是不可能的。我有一个response from a Google Employee

    很遗憾,无法以编程方式打开天气 图层信息窗口。如果您想在 API 中看到此内容,请提交一份 功能请求:http://code.google.com/p/gmaps-api-issues/issues/list

    以诺

    我创建了一个feature request

    【讨论】:

      猜你喜欢
      • 2011-10-11
      • 2015-02-06
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 2012-09-27
      • 2022-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多