Javascript OpenLayers http刷新回调函数
这是我的代码的精简版本,每2秒重新加载一个KML文件。每次更新时,我都希望相机平移到图层的功能范围,但我不知道在哪里设置回调Javascript OpenLayers http刷新回调函数,javascript,openlayers,Javascript,Openlayers,这是我的代码的精简版本,每2秒重新加载一个KML文件。每次更新时,我都希望相机平移到图层的功能范围,但我不知道在哪里设置回调 //set up ajax var protocol = new OpenLayers.Protocol.HTTP({ url: "feed.kml", format: new OpenLayers.Format.KML(), callback: function(){ alert("here"); //never call
//set up ajax
var protocol = new OpenLayers.Protocol.HTTP({
url: "feed.kml",
format: new OpenLayers.Format.KML(),
callback: function(){
alert("here"); //never called
}
});
//create refresher
var refresh = new OpenLayers.Strategy.Refresh({force: true, active: true});
//create layer for kml
var trackLayer = new OpenLayers.Layer.Vector("KML", {
strategies: [new OpenLayers.Strategy.Fixed(), refresh],
protocol: protocol,
});
//add to map
map.addLayer(trackLayer);
//refresh the kml every 2 seconds
setInterval(function(){
refresh.refresh();
//pan to extent
map.panTo(trackLayer.getDataExtent().getCenterLonLat());
},2000);
问题是这一行:map.panTo(trackLayer.getDataExtent().getCenterLonLat())在请求完成之前正在调用代码>
以下是文件:
我明白了。我觉得自己很愚蠢,因为我没有更快地弄明白这一点
//zoom callback
trackLayer.events.register("featuresadded",trackLayer,function(){
var bounds = trackLayer.getDataExtent();
if(bounds){ map.panTo(bounds.getCenterLonLat()); }
});