]> git.openstreetmap.org Git - potlatch2.git/blob - net/systemeD/halcyon/connection/Marker.as
Create the concept of Marker entities, and use them for bugs
[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, uid, timestamp);
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 static function lat2latp(lat:Number):Number {
33             return 180/Math.PI * Math.log(Math.tan(Math.PI/4+lat*(Math.PI/180)/2));
34         }
35
36         public static function latp2lat(a:Number):Number {
37             return 180/Math.PI * (2 * Math.atan(Math.exp(a*Math.PI/180)) - Math.PI/2);
38         }
39
40         public override function toString():String {
41             return "Marker("+id+"@"+version+"): "+lat+","+lon+" "+getTagList();
42         }
43
44         public override function getType():String {
45             return 'node';
46         }