Packagenet.systemeD.halcyon
Classpublic class MapPaint
InheritanceMapPaint Inheritance flash.display.Sprite

Manages the drawing of map entities, allocating their sprites etc.



Public Properties
 PropertyDefined by
  connection : Connection
Source data for this MapPaint layer
MapPaint
  interactive : Boolean = false
Can the user select entities in this layer?
MapPaint
  isBackground : Boolean = true
Is this a background layer or the core paint object?
MapPaint
  map : Map
Parent Map - required for finding out bounds and scale
MapPaint
  maxlayer : int
Highest OSM layer that can be displayed
MapPaint
  minlayer : int
Lowest OSM layer that can be displayed
MapPaint
  ready : Boolean
[read-only] Is ruleset loaded?
MapPaint
  ruleset : RuleSet
The MapCSS rules used for drawing entities.
MapPaint
  style : String = ""
The url of the style in use
MapPaint
  sublayerIndex : Object
Hash of index->position
MapPaint
Public Methods
 MethodDefined by
  
MapPaint(map:Map, connection:Connection, styleurl:String, minlayer:int, maxlayer:int)
Creates paint sprites and hit sprites for all layers in range.
MapPaint
  
createMarkerUI(marker:Marker, rotation:Number = 0, layer:int, stateClasses:Object = null):MarkerUI
Make a UI object representing a marker.
MapPaint
  
createNodeUI(node:Node, rotation:Number = 0, layer:int, stateClasses:Object = null):NodeUI
Make a UI object representing a node.
MapPaint
  
Make a UI object representing a way.
MapPaint
  
deleteMarkerUI(marker:Marker):void
Remove a marker's UI object.
MapPaint
  
deleteNodeUI(node:Node):void
Remove a node's UI object.
MapPaint
  
deleteWayUI(way:Way):void
Remove a way's UI object.
MapPaint
  
findWaysAtPoint(x:Number, y:Number, ignore:Way = null):Array
Find all ways whose WayUI passes a given screen co-ordinate.
MapPaint
  
getHitSpriteAt(l:int):Sprite
Returns the hit sprite for the given layer.
MapPaint
  
getPaintSpriteAt(l:int):Sprite
Returns the paint surface for the given layer.
MapPaint
  
limitWayDrawing(way:Way, except:Number, only:Number):void
MapPaint
  
Respond to event by deleting MarkerUI.
MapPaint
  
Respond to event by deleting NodeUI.
MapPaint
  
protectWay(way:Way):void
MapPaint
  
pullThrough(entity:Entity, target:MapPaint):Entity
Transfers an entity from this layer into another layer
MapPaint
  
redraw():void
Redraw all entities
MapPaint
  
redrawEntity(e:Entity):Boolean
Redraw a single entity if it exists
MapPaint
  
redrawPOIs():void
Redraw nodes and markers only
MapPaint
  
renumberNodeUI(node:Node, oldID:Number):void
MapPaint
  
renumberWayUI(way:Way, oldID:Number):void
MapPaint
  
sameConnection(entity:Entity):Boolean
Does an entity belong to this layer?
MapPaint
  
setHighlight(entity:Entity, settings:Object):void
Visually mark an entity as highlighted.
MapPaint
  
setHighlightOnNodes(way:Way, settings:Object):void
MapPaint
  
setPurgable(entities:Array, purgable:Boolean):void
Protect Entities and EntityUIs against purging.
MapPaint
  
setStyle(url:String):void
Switch to new MapCSS.
MapPaint
  
sublayer(layer:int, spritetype:uint, sublayer:Number):Sprite
MapPaint
  
unprotectWay(way:Way):void
MapPaint
  
updateEntityUIs(redraw:Boolean, remove:Boolean):void
Update, and if necessary, create / remove UIs for the current viewport.
MapPaint
  
wayDeleted(event:EntityEvent):void
Respond to event by removing the WayUI.
MapPaint
Property detail
connectionproperty
public var connection:Connection

Source data for this MapPaint layer

interactiveproperty 
public var interactive:Boolean = false

Can the user select entities in this layer?

isBackgroundproperty 
public var isBackground:Boolean = true

Is this a background layer or the core paint object?

mapproperty 
public var map:Map

Parent Map - required for finding out bounds and scale

maxlayerproperty 
public var maxlayer:int

Highest OSM layer that can be displayed

minlayerproperty 
public var minlayer:int

Lowest OSM layer that can be displayed

readyproperty 
ready:Boolean  [read-only]

Is ruleset loaded?

Implementation
    public function get ready():Boolean
rulesetproperty 
public var ruleset:RuleSet

The MapCSS rules used for drawing entities.

styleproperty 
public var style:String = ""

The url of the style in use

sublayerIndexproperty 
public var sublayerIndex:Object

Hash of index->position

Constructor detail
MapPaint()constructor
public function MapPaint(map:Map, connection:Connection, styleurl:String, minlayer:int, maxlayer:int)

Creates paint sprites and hit sprites for all layers in range. This object ends up with a series of child sprites as follows: p0,p1,p2..px, h0,h1,h2..hx where p are "paint sprites" and "h" are "hit sprites". There is one of each type for each layer.

Each paint sprite has 4 child sprites (fill, casing, stroke, names). Each hit sprite has 2 child sprites (way hit tests, node hit tests).

Thus if layers range from -5 to +5, there will be 11 top level paint sprites followed by 11 top level hit sprites.

Parameters
map:Map — The Map this is attached to. (Required for finding out bounds and scale.)
 
connection:Connection — The Connection containing the data for this layer.
 
styleurl:String — The lowest OSM layer to display.
 
minlayer:int — The highest OSM layer to display.
 
maxlayer:int
Method detail
createMarkerUI()method
public function createMarkerUI(marker:Marker, rotation:Number = 0, layer:int, stateClasses:Object = null):MarkerUI

Make a UI object representing a marker.

Parameters
marker:Marker
 
rotation:Number (default = 0)
 
layer:int
 
stateClasses:Object (default = null)

Returns
MarkerUI
createNodeUI()method 
public function createNodeUI(node:Node, rotation:Number = 0, layer:int, stateClasses:Object = null):NodeUI

Make a UI object representing a node.

Parameters
node:Node
 
rotation:Number (default = 0)
 
layer:int
 
stateClasses:Object (default = null)

Returns
NodeUI
createWayUI()method 
public function createWayUI(way:Way):WayUI

Make a UI object representing a way.

Parameters
way:Way

Returns
WayUI
deleteMarkerUI()method 
public function deleteMarkerUI(marker:Marker):void

Remove a marker's UI object.

Parameters
marker:Marker
deleteNodeUI()method 
public function deleteNodeUI(node:Node):void

Remove a node's UI object.

Parameters
node:Node
deleteWayUI()method 
public function deleteWayUI(way:Way):void

Remove a way's UI object.

Parameters
way:Way
findWaysAtPoint()method 
public function findWaysAtPoint(x:Number, y:Number, ignore:Way = null):Array

Find all ways whose WayUI passes a given screen co-ordinate.

Parameters
x:Number
 
y:Number
 
ignore:Way (default = null)

Returns
Array
getHitSpriteAt()method 
public function getHitSpriteAt(l:int):Sprite

Returns the hit sprite for the given layer.

Parameters
l:int

Returns
Sprite
getPaintSpriteAt()method 
public function getPaintSpriteAt(l:int):Sprite

Returns the paint surface for the given layer.

Parameters
l:int

Returns
Sprite
limitWayDrawing()method 
public function limitWayDrawing(way:Way, except:Number, only:Number):voidParameters
way:Way
 
except:Number
 
only:Number
markerDeleted()method 
public function markerDeleted(event:EntityEvent):void

Respond to event by deleting MarkerUI.

Parameters
event:EntityEvent
nodeDeleted()method 
public function nodeDeleted(event:EntityEvent):void

Respond to event by deleting NodeUI.

Parameters
event:EntityEvent
protectWay()method 
public function protectWay(way:Way):voidParameters
way:Way
pullThrough()method 
public function pullThrough(entity:Entity, target:MapPaint):Entity

Transfers an entity from this layer into another layer

Parameters
entity:Entity — The entity from this layer that you want to transfer.
 
target:MapPaint — The layer to transfer to

Returns
Entity — either the newly created entity, or null
redraw()method 
public function redraw():void

Redraw all entities

redrawEntity()method 
public function redrawEntity(e:Entity):Boolean

Redraw a single entity if it exists

Parameters
e:Entity

Returns
Boolean
redrawPOIs()method 
public function redrawPOIs():void

Redraw nodes and markers only

renumberNodeUI()method 
public function renumberNodeUI(node:Node, oldID:Number):voidParameters
node:Node
 
oldID:Number
renumberWayUI()method 
public function renumberWayUI(way:Way, oldID:Number):voidParameters
way:Way
 
oldID:Number
sameConnection()method 
public function sameConnection(entity:Entity):Boolean

Does an entity belong to this layer?

Parameters
entity:Entity

Returns
Boolean
setHighlight()method 
public function setHighlight(entity:Entity, settings:Object):void

Visually mark an entity as highlighted.

Parameters
entity:Entity
 
settings:Object
setHighlightOnNodes()method 
public function setHighlightOnNodes(way:Way, settings:Object):voidParameters
way:Way
 
settings:Object
setPurgable()method 
public function setPurgable(entities:Array, purgable:Boolean):void

Protect Entities and EntityUIs against purging. This prevents the currently selected items from being purged even though they're off-screen.

Parameters
entities:Array
 
purgable:Boolean
setStyle()method 
public function setStyle(url:String):void

Switch to new MapCSS.

Parameters
url:String
sublayer()method 
public function sublayer(layer:int, spritetype:uint, sublayer:Number):SpriteParameters
layer:int
 
spritetype:uint
 
sublayer:Number

Returns
Sprite
unprotectWay()method 
public function unprotectWay(way:Way):voidParameters
way:Way
updateEntityUIs()method 
public function updateEntityUIs(redraw:Boolean, remove:Boolean):void

Update, and if necessary, create / remove UIs for the current viewport. Flags control redrawing existing entities and removing UIs from entities no longer in view.

Parameters
redraw:Boolean — If true, all UIs for entities on "inside" lists will be redrawn
 
remove:Boolean — If true, all UIs for entites on "outside" lists will be removed. The purgable flag on UIs can override this, for example for selected objects. fixme? add smarter behaviour for way nodes - remove NodeUIs from way nodes off screen, create them for ones that scroll onto screen (for highlights etc)
wayDeleted()method 
public function wayDeleted(event:EntityEvent):void

Respond to event by removing the WayUI.

Parameters
event:EntityEvent