1 package net.systemeD.potlatch2.collections {
5 import flash.system.Security;
6 import net.systemeD.halcyon.Map;
7 import net.systemeD.halcyon.DebugURLRequest;
8 import net.systemeD.halcyon.VectorLayer;
9 import net.systemeD.potlatch2.utils.*;
11 public class VectorBackgrounds extends EventDispatcher {
13 private static const GLOBAL_INSTANCE:VectorBackgrounds = new VectorBackgrounds();
14 public static function instance():VectorBackgrounds { return GLOBAL_INSTANCE; }
19 public function init(map:Map):void {
21 var request:DebugURLRequest = new DebugURLRequest("vectors.xml");
22 var loader:URLLoader = new URLLoader();
23 loader.addEventListener(Event.COMPLETE, onConfigLoad);
24 loader.load(request.request);
27 public function onConfigLoad(e:Event):void {
28 var xml:XML = XML(e.target.data);
29 for each(var set:XML in xml.set) {
31 // allow layers to be defined but disabled. This lets me put examples in the
33 if (set.@disabled == "true") continue;
35 if (!(set.policyfile == undefined)) {
36 Security.loadPolicyFile(String(set.policyfile));
39 var name:String = (set.name == undefined) ? null : String(set.name);
40 var loader:String = set.loader;
48 if (set.@loaded == "true") {
50 var layer:VectorLayer = new VectorLayer(name, _map, 'stylesheets/gpx.css');
51 _map.addVectorLayer(layer);
52 var gpxImporter:GpxImporter = new GpxImporter(layer, layer.paint, [String(set.url)]);
54 trace("configured but not loaded isn't supported yet");
57 trace("AutoVectorBackground: no url for GPXImporter");
62 if (set.url && set.apiKey) {
64 var bugLoader:BugLoader = new BugLoader(_map, String(set.url), String(set.apikey), name, String(set.details));
65 if (set.@loaded == "true") {
69 trace("AutoVectorBackground: error with BugLoader");
73 case "BikeShopLoader":
75 name ||= 'Missing Bike Shops'
76 var bikeShopLoader:BikeShopLoader = new BikeShopLoader(_map, String(set.url), name);
77 if (set.@loaded == "true") {
78 bikeShopLoader.load();
81 trace("AutoVectorBackground: no url for BikeShopLoader");
86 trace("AutoVectorBackground: unknown loader");