Add some documenation notes, and remove some traces
[potlatch2.git] / net / systemeD / halcyon / connection / Marker.as
1 package net.systemeD.halcyon.connection {
2
3
4     /**
5     * A marker is a generic entity that can be used for representing non-Node point features.
6     * For example, it can be used for displaying bug reports or waypoints on VectorBackground layers
7     */
8     public class Marker extends Entity {
9         private var _lat:Number;
10         private var _latproj:Number;
11         private var _lon:Number;
12
13         public function Marker(id:Number, version:uint, tags:Object, loaded:Boolean, lat:Number, lon:Number) {
14             super(id, version, tags, loaded, NaN, null, null);
15             this._lat = lat;
16             this._latproj = lat2latp(lat);
17             this._lon = lon;
18         }
19
20         public function get lat():Number {
21             return _lat;
22         }
23
24         public function get latp():Number {
25             return _latproj;
26         }
27
28         public function get lon():Number {
29             return _lon;
30         }
31
32         public override function within(left:Number,right:Number,top:Number,bottom:Number):Boolean {
33             if (_lon<left || _lon>right || _lat<bottom || _lat>top || deleted) { return false; }
34             return true;
35         }
36
37         public static function lat2latp(lat:Number):Number {
38             return 180/Math.PI * Math.log(Math.tan(Math.PI/4+lat*(Math.PI/180)/2));
39         }
40
41         public static function latp2lat(a:Number):Number {
42             return 180/Math.PI * (2 * Math.atan(Math.exp(a*Math.PI/180)) - Math.PI/2);
43         }
44
45         public override function toString():String {
46             return "Marker("+id+"@"+version+"): "+lat+","+lon+" "+getTagList();
47         }
48
49         public override function getType():String {
50             return 'node';
51         }
52     }
53 }