Adding paging and cluster strategies. The paging strategy intercepts a batch of features bound for the layer and caches them, giving the layer one page at a time. The cluster strategy intercepts a batch of features and groups proximate features as clusters - giving the clusters to the layer instead. Thanks for the careful review Erik. r=euzuro (see #1606).
git-svn-id: http://svn.openlayers.org/trunk/openlayers@8003 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -38,7 +38,12 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
* Supported map event types (in addition to those from <OpenLayers.Layer>):
|
||||
* - *beforefeatureadded* Triggered before a feature is added. Listeners
|
||||
* will receive an object with a *feature* property referencing the
|
||||
* feature to be added.
|
||||
* feature to be added. To stop the feature from being added, a
|
||||
* listener should return false.
|
||||
* - *beforefeaturesadded* Triggered before an array of features is added.
|
||||
* Listeners will receive an object with a *features* property
|
||||
* referencing the feature to be added. To stop the features from
|
||||
* being added, a listener should return false.
|
||||
* - *featureadded* Triggered after a feature is added. The event
|
||||
* object passed to listeners will have a *feature* property with a
|
||||
* reference to the added feature.
|
||||
@@ -72,7 +77,8 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
* - *refresh* Triggered when something wants a strategy to ask the protocol
|
||||
* for a new set of features.
|
||||
*/
|
||||
EVENT_TYPES: ["beforefeatureadded", "featureadded", "featuresadded",
|
||||
EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded",
|
||||
"featureadded", "featuresadded",
|
||||
"beforefeatureremoved", "featureremoved", "featuresremoved",
|
||||
"beforefeatureselected", "featureselected", "featureunselected",
|
||||
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
|
||||
@@ -443,6 +449,15 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
}
|
||||
|
||||
var notify = !options || !options.silent;
|
||||
if(notify) {
|
||||
var event = {features: features};
|
||||
var ret = this.events.triggerEvent("beforefeaturesadded", event);
|
||||
if(ret === false) {
|
||||
return;
|
||||
}
|
||||
features = event.features;
|
||||
}
|
||||
|
||||
|
||||
for (var i=0, len=features.length; i<len; i++) {
|
||||
if (i != (features.length - 1)) {
|
||||
@@ -469,9 +484,10 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
}
|
||||
|
||||
if (notify) {
|
||||
this.events.triggerEvent("beforefeatureadded", {
|
||||
feature: feature
|
||||
});
|
||||
if(this.events.triggerEvent("beforefeatureadded",
|
||||
{feature: feature}) === false) {
|
||||
continue;
|
||||
};
|
||||
this.preFeatureInsert(feature);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user