[OpenLayers-Commits] r1820 - in sandbox/vector: examples lib lib/OpenLayers/Layer

commits at openlayers.org commits at openlayers.org
Mon Nov 13 19:59:54 EST 2006


Author: camerons
Date: 2006-11-13 19:59:53 -0500 (Mon, 13 Nov 2006)
New Revision: 1820

Added:
   sandbox/vector/lib/OpenLayers/Layer/Gml.js
Modified:
   sandbox/vector/examples/wfs_features.html
   sandbox/vector/lib/OpenLayers.js
Log:
Create Layer.Gml class - logic moved in from wfs_features.html

Modified: sandbox/vector/examples/wfs_features.html
===================================================================
--- sandbox/vector/examples/wfs_features.html	2006-11-13 22:20:59 UTC (rev 1819)
+++ sandbox/vector/examples/wfs_features.html	2006-11-14 00:59:53 UTC (rev 1820)
@@ -19,39 +19,14 @@
                 "http://labs.metacarta.com/wms/vmap0", {layers: 'basic'} );
             map.addLayer(layer);
 
-            vector = new OpenLayers.Layer.Vector("Vector Layer");
+            vector = new OpenLayers.Layer.Gml("Vector Layer2",{href:"us_interstate.xml"});
             map.addLayer(vector);
             
-            var results = OpenLayers.loadURL("us_interstate.xml", null, this, requestSuccess, requestFailure);
+            //var results = OpenLayers.loadURL("us_interstate.xml", null, this, requestSuccess, requestFailure);
 
             map.addControl(new OpenLayers.Control.LayerSwitcher());
             map.setCenter(new OpenLayers.LonLat(-100, 60), 3);
         }
-        
-        
-function requestSuccess(request) {
-    var doc = request.responseXML;
-    
-    if (!doc || request.fileType!="XML") {
-        doc = OpenLayers.parseXMLString(request.responseText);
-    }
-    
-    resultFeatures = OpenLayers.Ajax.getElementsByTagNameNS(doc, "http://www.opengis.net/gml","gml", "featureMember");
-    addResults(resultFeatures);
-}
-function requestFailure(request) {
-    console.log('failure');
-}
-function addResults(results) {
-    for (var i=0; i < results.length; i++) {
-        var gml = new OpenLayers.Parser.GML(results[i]);
-        var feature = gml.getFeature();
-        vector.addFeatures(feature);
-    }
-}
-
-
-        
         // -->
     </script>
   </head>

Added: sandbox/vector/lib/OpenLayers/Layer/Gml.js
===================================================================
--- sandbox/vector/lib/OpenLayers/Layer/Gml.js	                        (rev 0)
+++ sandbox/vector/lib/OpenLayers/Layer/Gml.js	2006-11-14 00:59:53 UTC (rev 1820)
@@ -0,0 +1,63 @@
+/* Copyright (c) 2006 Thales Australia, Cameron Shorter, published under the BSD license. */
+
+/**
+ * Create a vector layer by parsing a GML file. The GML file is
+ * passed in as a parameter.
+ * @class
+ *
+ * @requires OpenLayers/Vector.js
+ */
+OpenLayers.Layer.Gml = OpenLayers.Class.create();
+OpenLayers.Layer.Gml.prototype = 
+  OpenLayers.Class.inherit( OpenLayers.Layer.Vector, {
+
+    /**
+     * @constructor
+     * 
+     * @param {String} name
+     * @param {Object} options Hashtable of extra options to tag onto the layer.
+     * Options include - href: reference to the GML file, this is required.
+     * @param {Renderer} renderer Typically SvgRenderer or VmlRenderer.
+     */
+     initialize: function(name, options, renderer) {
+        var newArguments=new Array()
+        newArguments.push(name, options);
+        OpenLayers.Layer.Vector.prototype.initialize.apply(this, newArguments);
+        //alert("Gml.initialize href="+options.href);
+        
+        // Load the GML
+        var results = OpenLayers.loadURL(options.href, null, this, this.requestSuccess, this.requestFailure);
+    },
+
+    /**
+     * Process GML after it has been loaded.
+     * Called by initialise() and loadUrl() after the GML has been loaded.
+     * @param {String} request
+     */
+    requestSuccess: function(request) {
+        var doc = request.responseXML;
+        
+        if (!doc || request.fileType!="XML") {
+            doc = OpenLayers.parseXMLString(request.responseText);
+        }
+       
+        features = OpenLayers.Ajax.getElementsByTagNameNS(doc, "http://www.opengis.net/gml","gml", "featureMember");
+        for (var i=0; i < features.length; i++) {
+            var gml = new OpenLayers.Parser.GML(features[i]);
+            var feature = gml.getFeature();
+            this.addFeatures(feature);
+        }
+    },
+    
+    /**
+     * Process a failed loading of GML.
+     * Called by initialise() and loadUrl() if there was a problem loading GML.
+     * @param {String} request
+     */
+    requestFailure: function(request) {
+        console.log('failure in '+CLASS_NAME+' parsing gml file. Error message:'+request);
+    },
+
+    /** @final @type String */
+    CLASS_NAME: "OpenLayers.Layer.Gml"
+    });

Modified: sandbox/vector/lib/OpenLayers.js
===================================================================
--- sandbox/vector/lib/OpenLayers.js	2006-11-13 22:20:59 UTC (rev 1819)
+++ sandbox/vector/lib/OpenLayers.js	2006-11-14 00:59:53 UTC (rev 1820)
@@ -86,6 +86,7 @@
         "OpenLayers/Layer/GeoRSS.js",
         "OpenLayers/Layer/Boxes.js",
         "OpenLayers/Layer/Vector.js",
+        "OpenLayers/Layer/Gml.js",
         "OpenLayers/Popup/Anchored.js",
         "OpenLayers/Popup/AnchoredBubble.js",
         "OpenLayers/Control.js",



More information about the Commits mailing list