+++ /dev/null
-/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license.
- * See http://svn.openlayers.org/trunk/openlayers/license.txt for the full
- * text of the license. */
-// @require: OpenLayers/Tile.js
-/**
-* @class
-*/
-OpenLayers.Tile.WFS = Class.create();
-OpenLayers.Tile.WFS.prototype =
- Object.extend( new OpenLayers.Tile(), {
-
- /** @type Array(OpenLayers.Feature)*/
- features: null,
-
-
- /**
- * @constructor
- *
- * @param {OpenLayers.Layer} layer
- * @param {OpenLayers.Pixel} position
- * @param {OpenLayers.Bounds} bounds
- * @param {String} url
- * @param {OpenLayers.Size} size
- */
- initialize: function(layer, position, bounds, url, size) {
- OpenLayers.Tile.prototype.initialize.apply(this, arguments);
-
- this.features = new Array();
- },
-
- /**
- *
- */
- destroy: function() {
- for(var i=0; i < this.features.length; i++) {
- this.features[i].destroy();
- }
- OpenLayers.Tile.prototype.destroy.apply(this, arguments);
- },
-
- /**
- */
- draw:function() {
- this.loadFeaturesForRegion(this.requestSuccess);
- },
-
-
- /** get the full request string from the ds and the tile params
- * and call the AJAX loadURL().
- *
- * input are function pointers for what to do on success and failure.
- *
- * @param {function} success
- * @param {function} failure
- */
- loadFeaturesForRegion:function(success, failure) {
-
- if (!this.loaded) {
-
- if (this.url != "") {
-
- // TODO: Hmmm, this stops multiple loads of the data when a
- // result isn't immediately retrieved, but it's hacky.
- // Do it better.
- this.loaded = true;
- OpenLayers.loadURL(this.url, null, this, success, failure);
- }
- }
- },
-
- /** Return from AJAX request
- *
- * @param {} request
- */
- requestSuccess:function(request) {
- var doc = request.responseXML;
-
- if (!doc || request.fileType!="XML") {
- doc = OpenLayers.parseXMLString(request.responseText);
- }
-
- var resultFeatures = doc.getElementsByTagName("featureMember");
-
- //clear old featureList
- this.features = new Array();
-
- for (var i=0; i < resultFeatures.length; i++) {
-
- var feature = new this.layer.featureClass(this.layer,
- resultFeatures[i]);
- this.features.append(feature);
- }
-
- },
-
- /** @final @type String */
- CLASS_NAME: "OpenLayers.Tile.WFS"
- }
-);
-