ALKMaps.Layer.Vector

Instances of ALKMaps.Layer.Vector are used to render vector data from a variety of sources.  Create a new vector layer with the ALKMaps.Layer.Vector constructor.

Inherits from

Summary
ALKMaps.Layer.VectorInstances of ALKMaps.Layer.Vector are used to render vector data from a variety of sources.
Properties
events{ALKMaps.Events}
isBaseLayer{Boolean} The layer is a base layer.
isFixed{Boolean} Whether the layer remains in one place while dragging the map.
features{Array(ALKMaps.Feature.Vector)}
filter{ALKMaps.Filter} The filter set in this layer, a strategy launching read requests can combined this filter with its own filter.
selectedFeatures{Array(ALKMaps.Feature.Vector)}
unrenderedFeatures{Object} hash of features, keyed by feature.id, that the renderer failed to draw
reportError{Boolean} report friendly error message when loading of renderer fails.
style{Object} Default style for the layer
styleMap{ALKMaps.StyleMap}
strategies{Array(ALKMaps.Strategy})} Optional list of strategies for the layer.
protocol{ALKMaps.Protocol} Optional protocol for the layer.
renderers{Array(String)} List of supported Renderer classes.
renderer{<ALKMaps.Renderer>}
rendererOptions{Object} Options for the renderer.
geometryType{String} geometryType allows you to limit the types of geometries this layer supports.
drawn{Boolean} Whether the Vector Layer features have been drawn yet.
ratio{Float} This specifies the ratio of the size of the visiblity of the Vector Layer features to the size of the map.
arrowLookup{Array<Object>} An array of objects containing the featureId and array of arrow features for a given line feature.
Constructor
ALKMaps.Layer.VectorCreate a new vector layer
Functions
destroyDestroy this layer
cloneCreate a clone of this layer.
refreshAsk the layer to request features again and redraw them.
assignRendererIterates through the available renderer implementations and selects and assigns the first one whose “supported()” function returns true.
displayErrorLet the user know their browser isn’t supported.
setMapThe layer has been added to the map.
afterAddCalled at the end of the map.addLayer sequence.
removeMapThe layer has been removed from the map.
onMapResizeNotify the renderer of the change in size.
moveToReset the vector layer’s div so that it once again is lined up with the map.
displayHide or show the Layer
addFeaturesAdd Features to the layer.
removeFeaturesRemove features from the layer.
removeAllFeaturesRemove all features from the layer.
destroyFeaturesErase and destroy features on the layer.
drawFeatureDraw (or redraw) a feature on the layer.
eraseFeaturesErase features from the layer.
getFeatureFromEventGiven an event, return a feature if the event occurred over one.
getFeatureByGiven a property value, return the feature if it exists in the features array
getFeatureByIdGiven a feature id, return the feature if it exists in the features array
getFeatureByFidGiven a feature fid, return the feature if it exists in the features array
getFeaturesByAttributeReturns an array of features that have the given attribute key set to the given value.
onFeatureInsertmethod called after a feature is inserted.
preFeatureInsertmethod called before a feature is inserted.
getDataExtentCalculates the max extent which includes all of the features.
setOpacitySets the opacity for the entire layer (all images)
drawVectorArrowsFirst removes any existing arrows on the specified route.
createVectorArrowCreates a new arrow feature using the given Point geometry, style, rotation, and routeId.
getFeatureArrowsSearches for and returns the arrows object from the lookup array that corresponds to the given feature.

Properties

events

{ALKMaps.Events}

Register a listener for a particular event with the following syntax

layer.events.register(type, obj, listener);

Listeners will be called with a reference to an event object.  The properties of this event depends on exactly what happened.

All event objects have at least the following properties

object{Object} A reference to layer.events.object.
element{DOMElement} A reference to layer.events.element.

Supported map event types (in addition to those from ALKMaps.Layer.events)

beforefeatureaddedTriggered before a feature is added.  Listeners will receive an object with a feature property referencing the feature to be added.  To stop the feature from being added, a listener should return false.
beforefeaturesaddedTriggered before an array of features is added.  Listeners will receive an object with a features property referencing the feature to be added.  To stop the features from being added, a listener should return false.
featureaddedTriggered after a feature is added.  The event object passed to listeners will have a feature property with a reference to the added feature.
featuresaddedTriggered after features are added.  The event object passed to listeners will have a features property with a reference to an array of added features.
beforefeatureremovedTriggered before a feature is removed.  Listeners will receive an object with a feature property referencing the feature to be removed.
beforefeaturesremovedTriggered before multiple features are removed.  Listeners will receive an object with a features property referencing the features to be removed.
featureremovedTriggerd after a feature is removed.  The event object passed to listeners will have a feature property with a reference to the removed feature.
featuresremovedTriggered after features are removed.  The event object passed to listeners will have a features property with a reference to an array of removed features.
beforefeatureselectedTriggered before a feature is selected.  Listeners will receive an object with a feature property referencing the feature to be selected.  To stop the feature from being selected, a listener should return false.
featureselectedTriggered after a feature is selected.  Listeners will receive an object with a feature property referencing the selected feature.
featureunselectedTriggered after a feature is unselected.  Listeners will receive an object with a feature property referencing the unselected feature.
beforefeaturemodifiedTriggered when a feature is selected to be modified.  Listeners will receive an object with a feature property referencing the selected feature.
featuremodifiedTriggered when a feature has been modified.  Listeners will receive an object with a feature property referencing the modified feature.
afterfeaturemodifiedTriggered when a feature is finished being modified.  Listeners will receive an object with a feature property referencing the modified feature.
vertexmodifiedTriggered when a vertex within any feature geometry has been modified.  Listeners will receive an object with a feature property referencing the modified feature, a vertex property referencing the vertex modified (always a point geometry), and a pixel property referencing the pixel location of the modification.
vertexremovedTriggered when a vertex within any feature geometry has been deleted.  Listeners will receive an object with a feature property referencing the modified feature, a vertex property referencing the vertex modified (always a point geometry), and a pixel property referencing the pixel location of the removal.
sketchstartedTriggered when a feature sketch bound for this layer is started.  Listeners will receive an object with a feature property referencing the new sketch feature and a vertex property referencing the creation point.
sketchmodifiedTriggered when a feature sketch bound for this layer is modified.  Listeners will receive an object with a vertex property referencing the modified vertex and a feature property referencing the sketch feature.
sketchcompleteTriggered when a feature sketch bound for this layer is complete.  Listeners will receive an object with a feature property referencing the sketch feature.  By returning false, a listener can stop the sketch feature from being added to the layer.
refreshTriggered when something wants a strategy to ask the protocol for a new set of features.
featureclickedTriggered when a feature is clicked.
featureclickedoutTriggered when a click outside a feature.  Last stored feature will be returned in the event.
overFeatureTriggered when mouse over a feature.
outFeatureTriggered when mouse out a feature.

isBaseLayer

{Boolean} The layer is a base layer.  Default is false.  Set this property in the layer options.

isFixed

{Boolean} Whether the layer remains in one place while dragging the map.

features

filter

{ALKMaps.Filter} The filter set in this layer, a strategy launching read requests can combined this filter with its own filter.

selectedFeatures

unrenderedFeatures

{Object} hash of features, keyed by feature.id, that the renderer failed to draw

reportError

{Boolean} report friendly error message when loading of renderer fails.

style

{Object} Default style for the layer

strategies

{Array(ALKMaps.Strategy})} Optional list of strategies for the layer.

protocol

{ALKMaps.Protocol} Optional protocol for the layer.

renderers

{Array(String)} List of supported Renderer classes.  Add to this list to add support for additional renderers.  This list is ordered: the first renderer which returns true for the ‘supported()’ method will be used, if not defined in the ‘renderer’ option.

renderer

{<ALKMaps.Renderer>}

rendererOptions

{Object} Options for the renderer.  See {<ALKMaps.Renderer>} for supported options.

geometryType

{String} geometryType allows you to limit the types of geometries this layer supports.  This should be set to something like “ALKMaps.Geometry.Point” to limit types.

drawn

{Boolean} Whether the Vector Layer features have been drawn yet.

ratio

{Float} This specifies the ratio of the size of the visiblity of the Vector Layer features to the size of the map.

arrowLookup

{Array<Object>} An array of objects containing the featureId and array of arrow features for a given line feature.  {id: “”, arrows: []}

Constructor

ALKMaps.Layer.Vector

Create a new vector layer

Parameters

name{String} A name for the layer
options{Object} Optional object with non-default properties to set on the layer.

Returns

{ALKMaps.Layer.Vector} A new vector layer

Functions

destroy

destroy: function()

Destroy this layer

clone

clone: function (obj)

Create a clone of this layer.

Note: Features of the layer are also cloned.

Returns

{ALKMaps.Layer.Vector} An exact clone of this layer

refresh

refresh: function(obj)

Ask the layer to request features again and redraw them.  Triggers the refresh event if the layer is in range and visible.

Parameters

obj{Object} Optional object with properties for any listener of the refresh event.

assignRenderer

assignRenderer: function()

Iterates through the available renderer implementations and selects and assigns the first one whose “supported()” function returns true.

displayError

displayError: function()

Let the user know their browser isn’t supported.

setMap

setMap: function(map)

The layer has been added to the map.

If there is no renderer set, the layer can’t be used.  Remove it.  Otherwise, give the renderer a reference to the map and set its size.

Parameters

map{ALKMaps.Map}

afterAdd

afterAdd: function()

Called at the end of the map.addLayer sequence.  At this point, the map will have a base layer.  Any autoActivate strategies will be activated here.

removeMap

removeMap: function(map)

The layer has been removed from the map.

Parameters

map{ALKMaps.Map}

onMapResize

onMapResize: function()

Notify the renderer of the change in size.

moveTo

moveTo: function(bounds,
zoomChanged,
dragging)

Reset the vector layer’s div so that it once again is lined up with the map.  Notify the renderer of the change of extent, and in the case of a change of zoom level (resolution), have the renderer redraw features.

If the layer has not yet been drawn, cycle through the layer’s features and draw each one.

Parameters

bounds{ALKMaps.Bounds}
zoomChanged{Boolean}
dragging{Boolean}

display

display: function(display)

Hide or show the Layer

Parameters

display{Boolean}

addFeatures

addFeatures: function(features,
options)

Add Features to the layer.

Parameters

features{Array(ALKMaps.Feature.Vector)}
options{Object}

removeFeatures

removeFeatures: function(features,
options)

Remove features from the layer.  This erases any drawn features and removes them from the layer’s control.  The beforefeatureremoved and featureremoved events will be triggered for each feature.  The featuresremoved event will be triggered after all features have been removed.  To suppress event triggering, use the silent option.

Parameters

features{Array(ALKMaps.Feature.Vector)} List of features to be removed.
options{Object} Optional properties for changing behavior of the removal.

Valid options

silent{Boolean} Suppress event triggering.  Default is false.

removeAllFeatures

removeAllFeatures: function(options)

Remove all features from the layer.

Parameters

options{Object} Optional properties for changing behavior of the removal.

Valid options

silent{Boolean} Suppress event triggering.  Default is false.

destroyFeatures

destroyFeatures: function(features,
options)

Erase and destroy features on the layer.

Parameters

features{Array(ALKMaps.Feature.Vector)} An optional array of features to destroy.  If not supplied, all features on the layer will be destroyed.
options{Object}

drawFeature

drawFeature: function(feature,
style)

Draw (or redraw) a feature on the layer.  If the optional style argument is included, this style will be used.  If no style is included, the feature’s style will be used.  If the feature doesn’t have a style, the layer’s style will be used.

This function is not designed to be used when adding features to the layer (use addFeatures instead).  It is meant to be used when the style of a feature has changed, or in some other way needs to visually updated after it has already been added to a layer.  You must add the feature to the layer for most layer-related events to happen.

Parameters

feature{ALKMaps.Feature.Vector}
style{String | Object} Named render intent or full symbolizer object.

eraseFeatures

eraseFeatures: function(features)

Erase features from the layer.

Parameters

features{Array(ALKMaps.Feature.Vector)}

getFeatureFromEvent

getFeatureFromEvent: function(evt)

Given an event, return a feature if the event occurred over one.  Otherwise, return null.

Parameters

evt{Event}

Returns

{ALKMaps.Feature.Vector} A feature if one was under the event.

getFeatureBy

getFeatureBy: function(property,
value)

Given a property value, return the feature if it exists in the features array

Parameters

property{String}
value{String}

Returns

{ALKMaps.Feature.Vector} A feature corresponding to the given property value or null if there is no such feature.

getFeatureById

getFeatureById: function(featureId)

Given a feature id, return the feature if it exists in the features array

Parameters

featureId{String}

Returns

{ALKMaps.Feature.Vector} A feature corresponding to the given featureId or null if there is no such feature.

getFeatureByFid

getFeatureByFid: function(featureFid)

Given a feature fid, return the feature if it exists in the features array

Parameters

featureFid{String}

Returns

{ALKMaps.Feature.Vector} A feature corresponding to the given featureFid or null if there is no such feature.

getFeaturesByAttribute

getFeaturesByAttribute: function(attrName,
attrValue)

Returns an array of features that have the given attribute key set to the given value.  Comparison of attribute values takes care of datatypes, e.g. the string ‘1234’ is not equal to the number 1234.

Parameters

attrName{String}
attrValue{Mixed}

Returns

Array({ALKMaps.Feature.Vector}) An array of features that have the passed named attribute set to the given value.

onFeatureInsert

onFeatureInsert: function(feature)

method called after a feature is inserted.  Does nothing by default.  Override this if you need to do something on feature updates.

Parameters

feature{ALKMaps.Feature.Vector}

preFeatureInsert

preFeatureInsert: function(feature)

method called before a feature is inserted.  Does nothing by default.  Override this if you need to do something when features are first added to the layer, but before they are drawn, such as adjust the style.

Parameters

feature{ALKMaps.Feature.Vector}

getDataExtent

getDataExtent: function ()

Calculates the max extent which includes all of the features.

Returns

{ALKMaps.Bounds} or null if the layer has no features with geometries.

setOpacity

setOpacity: function(opacity)

Sets the opacity for the entire layer (all images)

Parameters

opacity{Float}

drawVectorArrows

drawVectorArrows: function (arrowsObj)

First removes any existing arrows on the specified route.  Then either draws new arrows along the route line at a given spacing interval or draws a single arrow at the end of the route.

Parameters

arrowsObj{Object} Object containing an array of arrow point features and the ID of the route that the arrows correspond to.

createVectorArrow

createVectorArrow: function(point,
style,
bearing,
id)

Creates a new arrow feature using the given Point geometry, style, rotation, and routeId.

Parameters

point{ALKMaps.Geometry.Point} Arrow feature’s point geometry.
style{Object} Route’s style object.
bearing{Number} Rotation of arrow.
id{String} ID of the vector that the arrow corresponds to.

Returns

{ALKMaps.Feature.Vector} New arrow feature.

getFeatureArrows

getFeatureArrows: function (feature)

Searches for and returns the arrows object from the lookup array that corresponds to the given feature.  If no entry exists, null is returned.

Parameters

feature{ALKMaps.Feature.Vector}

Returns

{id: “ALKMaps.Feature.Vector_91”, arrows: [ALKMaps.Feature.Vector]} Arrows Object.

Vector features use the ALKMaps.Geometry classes as geometry description.
This class represents an OGC Filter.
Abstract vector layer strategy class.
Abstract vector layer protocol class.
destroy: function()
Destroy this layer
clone: function (obj)
Create a clone of this layer.
refresh: function(obj)
Ask the layer to request features again and redraw them.
assignRenderer: function()
Iterates through the available renderer implementations and selects and assigns the first one whose “supported()” function returns true.
displayError: function()
Let the user know their browser isn’t supported.
setMap: function(map)
The layer has been added to the map.
afterAdd: function()
Called at the end of the map.addLayer sequence.
removeMap: function(map)
The layer has been removed from the map.
onMapResize: function()
Notify the renderer of the change in size.
moveTo: function(bounds,
zoomChanged,
dragging)
Reset the vector layer’s div so that it once again is lined up with the map.
display: function(display)
Hide or show the Layer
addFeatures: function(features,
options)
Add Features to the layer.
removeFeatures: function(features,
options)
Remove features from the layer.
removeAllFeatures: function(options)
Remove all features from the layer.
destroyFeatures: function(features,
options)
Erase and destroy features on the layer.
drawFeature: function(feature,
style)
Draw (or redraw) a feature on the layer.
eraseFeatures: function(features)
Erase features from the layer.
getFeatureFromEvent: function(evt)
Given an event, return a feature if the event occurred over one.
getFeatureBy: function(property,
value)
Given a property value, return the feature if it exists in the features array
getFeatureById: function(featureId)
Given a feature id, return the feature if it exists in the features array
getFeatureByFid: function(featureFid)
Given a feature fid, return the feature if it exists in the features array
getFeaturesByAttribute: function(attrName,
attrValue)
Returns an array of features that have the given attribute key set to the given value.
onFeatureInsert: function(feature)
method called after a feature is inserted.
preFeatureInsert: function(feature)
method called before a feature is inserted.
getDataExtent: function ()
Calculates the max extent which includes all of the features.
setOpacity: function(opacity)
Sets the opacity for the entire layer (all images)
drawVectorArrows: function (arrowsObj)
First removes any existing arrows on the specified route.
createVectorArrow: function(point,
style,
bearing,
id)
Creates a new arrow feature using the given Point geometry, style, rotation, and routeId.
getFeatureArrows: function (feature)
Searches for and returns the arrows object from the lookup array that corresponds to the given feature.
Create a new vector layer
{ALKMaps.Events}
Instances of ALKMaps.Map are interactive maps embedded in a web page.
Instances of this class represent bounding boxes.
Point geometry class.
Close