Merge pull request #1274 from tschaub/callback-count

Issue calls to get feature/info for all layers.
This commit is contained in:
Tim Schaub
2013-11-13 06:55:01 -08:00
3 changed files with 10 additions and 14 deletions

View File

@@ -92,9 +92,7 @@ var vector = new ol.layer.Vector({
})
});
var select = new ol.interaction.Select({
layers: [vector]
});
var select = new ol.interaction.Select();
var modify = new ol.interaction.Modify();

View File

@@ -47,9 +47,7 @@ var vector = new ol.layer.Vector({
})
});
var select = new ol.interaction.Select({
layers: [vector]
});
var select = new ol.interaction.Select();
var map = new ol.Map({
interactions: ol.interaction.defaults().extend([select]),

View File

@@ -113,10 +113,11 @@ ol.renderer.Map.prototype.getFeatureInfoForPixel =
function(pixel, layers, success, opt_error) {
var numLayers = layers.length;
var featureInfo = new Array(numLayers);
var callbackCount = 0;
var callback = function(layerFeatureInfo, layer) {
featureInfo[goog.array.indexOf(layers, layer)] = layerFeatureInfo;
--numLayers;
if (!numLayers) {
--callbackCount;
if (callbackCount <= 0) {
success(featureInfo);
}
};
@@ -126,9 +127,8 @@ ol.renderer.Map.prototype.getFeatureInfoForPixel =
layer = layers[i];
layerRenderer = this.getLayerRenderer(layer);
if (goog.isFunction(layerRenderer.getFeatureInfoForPixel)) {
++callbackCount;
layerRenderer.getFeatureInfoForPixel(pixel, callback, opt_error);
} else {
--numLayers;
}
}
};
@@ -149,10 +149,11 @@ ol.renderer.Map.prototype.getFeaturesForPixel =
function(pixel, layers, success, opt_error) {
var numLayers = layers.length;
var features = new Array(numLayers);
var callbackCount = 0;
var callback = function(layerFeatures, layer) {
features[goog.array.indexOf(layers, layer)] = layerFeatures;
--numLayers;
if (!numLayers) {
--callbackCount;
if (callbackCount <= 0) {
success(features);
}
};
@@ -162,9 +163,8 @@ ol.renderer.Map.prototype.getFeaturesForPixel =
layer = layers[i];
layerRenderer = this.getLayerRenderer(layer);
if (goog.isFunction(layerRenderer.getFeaturesForPixel)) {
++callbackCount;
layerRenderer.getFeaturesForPixel(pixel, callback, opt_error);
} else {
--numLayers;
}
}
};