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({ var select = new ol.interaction.Select();
layers: [vector]
});
var modify = new ol.interaction.Modify(); var modify = new ol.interaction.Modify();

View File

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

View File

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