我正在尝试将我的 Live Earthquake Mashup 移植到
http://www.oe-files.de/gmaps/eqmashup.html
到谷歌地图 API v3。目前,我正在努力寻找渲染地图,尤其是自定义控件的正确时机,以便加载第一个数据馈送。需要显示自定义控件,因为代表多个提要之一的控件会突出显示。
我已阅读有关 google.maps.event.addListenerOnce 和事件“idle”和“tilesLoaded”的信息,但目前这些似乎都不起作用。
就我而言,混搭可以在这里找到:
http://www.oe-files.de/gmaps/eqmashup-ng.html
加载页面后,单击其中一个提要选择器(右下角)将加载提要。但我似乎无法在加载页面后找到合适的时机调用“switchFeed”。
仍然缺少很多其他东西,但目前这是最大的问题。任何帮助表示赞赏。
更新:
目前,这个序列应该初始化地图并加载第一个数据:
google.maps.event.addDomListener(window, 'load', initMashup);
google.maps.event.addListenerOnce(map, 'tilesLoaded', function() {
switchFeed('usgs25');
});
这不起作用,因为执行 addListerOnce 时未初始化“maps”。我尝试过的另一种方式是(或多或少)
google.maps.event.addDomListener(window, 'load', initMashup);
switchFeed('usgs25');
这也不起作用,因为 switchFeed 切换了作为自定义控件添加的按钮的样式(通过 map.controls),并且该按钮尚未呈现。
所以我的问题是:地图完全加载的时间是什么时候,我怎样才能将一个动作附加到这个事件上?