Don't auto-split GPX files, only /trackpoints data
[potlatch2.git] / net / systemeD / potlatch2 / utils / SnapshotLoader.as
index b0feaed1b88f5d730e1fb625caebaaeea4bec1f4..e2457a36a12e7f5378f3ec2887b13e8f7582a016 100644 (file)
@@ -4,23 +4,43 @@ package net.systemeD.potlatch2.utils {
     import net.systemeD.halcyon.MapPaint;
     import net.systemeD.potlatch2.utils.SnapshotConnection;
 
+    /**
+    * Loads a Snapshot layer. Uses lazy-loading such that only when the load() function is
+    * called will the layer be created and added to the map
+    *
+    * @see SnapShotConnection
+    */
     public class SnapshotLoader {
 
         private var map:Map;
         private var _layer:MapPaint;
-        private static const STYLESHEET:String="stylesheets/wireframe.css"; //TODO take from xml
+        private static const STYLESHEET:String="stylesheets/snapshot.css";
         private var connection:SnapshotConnection;
+        private var _stylesheet:String;
 
-
-        public function SnapshotLoader(map:Map, url:String, name:String):void {
+        /**
+        * Create a new SnapshotLoader
+        * @param map The map object to attach the layer to
+        * @param url The url of the snapshot server. This should be to the api base and
+                     end in a forward slash, e.g. http://example.com/snapshot/api/
+        * @param name The name to give to the layer/connection
+        * @param stylesheet The url of the stylesheet to use for styling the layer
+        */
+        public function SnapshotLoader(map:Map, url:String, name:String, stylesheet:String = null):void {
             this.map = map;
             connection = new SnapshotConnection(name, url, '');
+            _stylesheet = (stylesheet && stylesheet != '') ? stylesheet : STYLESHEET;
+            _layer = map.addLayer(connection, _stylesheet, true, true);
+            _layer.visible = false;
         }
 
+        /**
+        * Load the layer.
+        * Call this the first time you wish to load the layer. After this it will respond
+        * automatically to pan / zooming of the associated Map
+        */
         public function load():void {
-            if (!_layer) {
-                _layer = map.addLayer(connection, STYLESHEET);
-            }
+            _layer.visible = true;
             connection.loadBbox(map.edge_l, map.edge_r, map.edge_t, map.edge_b);
         }
     }