1 package net.systemeD.potlatch2.utils {
3 import net.systemeD.halcyon.Map;
4 import net.systemeD.halcyon.VectorLayer;
5 import net.systemeD.halcyon.connection.Node;
8 import com.adobe.serialization.json.JSON;
10 public class BugLoader {
13 private var bugBaseURL:String;
14 private var bugApiKey:String;
15 private var _layer:VectorLayer;
16 private static const STYLESHEET:String="bugs.css";
18 public function BugLoader(map:Map, url:String, bugApiKey:String):void {
20 this.bugBaseURL = url;
21 this.bugApiKey = bugApiKey;
24 public function load():void {
25 var loader:URLLoader = new URLLoader();
26 loader.load(new URLRequest(bugBaseURL+"getBugs.json?bbox="+map.edge_l+","+map.edge_b+","+map.edge_r+","+map.edge_t+"&key="+bugApiKey));
27 loader.addEventListener(Event.COMPLETE, parseJSON);
30 public function parseJSON(event:Event):void {
32 var result:String = String(event.target.data);
33 var featureCollection:Object = JSON.decode(result);
34 trace(featureCollection);
35 trace(featureCollection.type);
36 trace(featureCollection.features[0].type);
37 trace(featureCollection.features.length);
38 for each (var feature:Object in featureCollection.features) {
39 // geoJSON spec is x,y,z i.e. lon, lat, ele
40 var lon:Number = feature.geometry.coordinates[0];
41 var lat:Number = feature.geometry.coordinates[1];
43 var node:Node = layer.createNode({"name":feature.properties.description,"bug_id":feature.id}, lat, lon);
44 layer.registerPOI(node);
46 layer.paint.updateEntityUIs(layer.getObjectsByBbox(map.edge_l,map.edge_r,map.edge_t,map.edge_b), false, false);
50 private function get layer():VectorLayer {
53 _layer=new VectorLayer(n,map,STYLESHEET);
54 map.addVectorLayer(_layer);