Merge branch 'master' into history
[potlatch2.git] / net / systemeD / potlatch2 / utils / BikeShopLoader.as
1 package net.systemeD.potlatch2.utils {
2
3     import net.systemeD.halcyon.Map;
4     import net.systemeD.halcyon.MapPaint;
5     import net.systemeD.halcyon.connection.Connection;
6     import net.systemeD.halcyon.connection.Marker;
7     import flash.net.*;
8     import flash.events.*;
9     import com.adobe.serialization.json.JSON;
10     import flash.system.Security;
11
12     /**
13     * The BikeShopLoader loads data regarding missing bike shops in the UK from the "bike-shop-locator" project.
14     * It was a quick hack undertaken during the WhereCampUK meeting in Nottingham in November 2010. It served partly
15     * as a demonstration of improving QA feedback loops within the OSM universe, but mainly as an indication
16     * that we need to rethink how these things are handled in P2. The amount of copy/paste coding going on is too
17     * high, and we should be able to make something along the lines of "imagery.xml" to define and load generic
18     * kml/geojson/georss feeds from multiple sources without having to code *Loader classes for each one.
19     *
20     * Oh, and it's possible to handle xml Namespaces without resorting to blanking them out of the raw data :-)
21     */
22
23     public class BikeShopLoader {
24
25         private var map:Map;
26         private var bikeShopBaseURL:String;
27         private var name:String;
28         private var _layer:MapPaint;
29         private var connection:Connection;
30         private static const STYLESHEET:String="stylesheets/bikeshops.css";
31
32         public function BikeShopLoader(map:Map, url:String, name:String) {
33             this.map = map;
34             this.bikeShopBaseURL = url;
35             this.name = name;
36             this.connection = new BikeShopConnection(name,url,bikeShopBaseURL+"crossdomain.xml",null);
37             _layer = map.addLayer(connection, STYLESHEET);
38             _layer.visible = false;
39         }
40
41         public function load():void {
42             _layer.visible = true;
43             connection.loadBbox(map.edge_l, map.edge_r, map.edge_t, map.edge_b);
44         }
45     }
46 }