Google Maps API V3回调(KML加载)

Thi*_*lem 9 ajax jquery google-maps google-maps-api-3

我正在使用Google Maps API v3显示地图,加载一些KML并使用kml.setMap()方法显示/隐藏它们.

我需要在加载KML时显示"加载"窗口,直到地图完成加载.

我试着用这样的东西:

google.maps.event.addListener(map, 'tilesloaded', function() {
    var d = new Date();
    console.log('Loaded: ' + d);
});

google.maps.event.addListener(map, 'bounds_changed', function() {
    var d = new Date();
    console.log('Started: ' + d);
});
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作.

"titlesloaded"事件总是不会被触发,可能是因为缓存的图像?

这是我的日志:

Started: Tue Mar 29 2011 16:22:03 GMT-0300 (BRT) <-- started loading map
Loaded: Tue Mar 29 2011 16:22:06 GMT-0300 (BRT) <-- done loading map
Started: Tue Mar 29 2011 16:22:30 GMT-0300 (BRT) <-- started plotting the KML
Started: Tue Mar 29 2011 16:22:30 GMT-0300 (BRT) <-- started plotting the KML (again?!)
Loaded: Tue Mar 29 2011 16:22:32 GMT-0300 (BRT) <-- done plotting the KML
Run Code Online (Sandbox Code Playgroud)

并且在隐藏/再次显示KML时没有收到任何信息

Bjö*_*örn 18

尝试在kmlLayer而不是地图上注册一个监听器.我通过监听metadata_changed事件做了一些简单的测试,看起来效果很好.

google.maps.event.addListener(kmlLayer, "metadata_changed", function() {
    console.debug("metadata_changed");
});
Run Code Online (Sandbox Code Playgroud)