new geo.polygonFeature(arg){geo.polygonFeature}
Create a new instance of class polygonFeature.
Name | Type | Description |
---|---|---|
arg |
geo.polygonFeature.spec |
Returns:
Type | Description |
---|---|
geo.polygonFeature |
Extends
Type Definitions
-
geo.polygonFeature.specgeo.feature.spec
-
Polygon feature specification.
Properties:
Name Type Argument Default Description position
geo.geoPosition | function <optional>
Position of the data. Default is (data).
polygon
geo.polygon | function <optional>
Polygons from the data. Default (data).
style
geo.polygonFeature.styleSpec <optional>
Style object with default style options.
layer
geo.layer <optional>
the parent layer associated with the feature.
selectionAPI
boolean | 'auto' <optional>
'auto' If
'auto'
, enable selection events if anygeo.event.feature
events are bound to the feature. Otherwise, if truthy, enable selection events on the feature. Selection events are those ingeo.event.feature
. They can be bound via a call likefeature.geoOn(geo.event.feature.mousemove, function (evt) { // do something with the feature });
where the handler is passed a
geo.event.feature
object.visible
boolean <optional>
true If truthy, show the feature. If falsy, hide the feature and do not allow interaction with it.
gcs
string <optional>
The interface gcs for this feature. If
undefined
ornull
, this uses the layer's interface gcs. This is a string used bygeo.transform
.bin
number <optional>
null The bin number is used to determine the order of multiple features on the same layer. It has no effect except on the webgl renderer. A negative value hides the feature without stopping interaction with it. Otherwise, more features with higher bin numbers are drawn above those with lower bin numbers. If two features have the same bin number, their order relative to one another is indeterminate and may be unstable. A value of
null
will use the current position of the feature within its parent's list of children as the bin number.renderer
geo.renderer <optional>
A reference to the renderer used for the feature. If
null
or unset or identical tolayer.renderer()
, the layer's renderer is used. -
geo.polygonFeature.styleSpecgeo.lineFeature.styleSpec
-
Style specification for a polygon feature.
Properties:
Name Type Argument Default Description fill
boolean | function <optional>
true True to fill polygon.
fillColor
geo.geoColor | function <optional>
Color to fill each polygon. The color can vary by vertex.
fillOpacity
number | function <optional>
Opacity for each polygon. The opacity can vary by vertex. Opacity is on a [0-1] scale.
stroke
boolean | function <optional>
false True to stroke polygon.
uniformPolygon
boolean | function <optional>
false Boolean indicating if each polygon has a uniform style (uniform fill color, fill opacity, stroke color, and stroke opacity). Can vary by polygon.
closed
boolean | function <optional>
true Ignored. Always
true
.origin
Array.<number> | function <optional>
Origin in map gcs coordinates used for to ensure high precision drawing in this location. When called as a function, this is passed an array of items, each of which has a vertices property that is a single continuous array in map gcs coordinates. It defaults to the first polygon's first vertex's position.
strokeColor
geo.geoColor | function <optional>
Color to stroke each line. The color can vary by point.
strokeOpacity
number | function <optional>
Opacity for each line stroke. The opacity can vary by point. Opacity is on a [0-1] scale.
strokeWidth
number | function <optional>
The weight of the line stroke in pixels. The width can vary by point.
strokeOffset
number | function <optional>
This is a value from -1 (left) to 1 (right), with 0 being centered. This can vary by point.
lineCap
string | function <optional>
'butt' One of 'butt', 'square', or 'round'. This can vary by point.
lineJoin
string | function <optional>
'miter' One of 'miter', 'bevel', 'round', or 'miter-clip'. This can vary by point.
miterLimit
number | function <optional>
10 For lines of more than two segments that are mitered, if the miter length exceeds the
strokeWidth
divided by the sine of half the angle between segments, then a bevel join is used instead. This is a single value that applies to all lines. If a function, it is called with(data)
.uniformLine
boolean | string | function <optional>
false Boolean indicating if each line has a uniform style (uniform stroke color, opacity, and width). Can vary by line. A value of
'drop'
will modify rendered vertex order by dropping duplicates and setting later values to zero opacity. This can be faster but makes it so updating the style array can no longer be used.antialiasing
number | function <optional>
Antialiasing distance in pixels. Values must be non-negative. A value greater than 1 will produce a visible gradient. This is a single value that applies to all lines.
debug
string | function <optional>
If 'debug', render lines in debug mode. This is a single value that applies to all lines.
Members
-
inherited idle
-
Getter for the idle state. Read only.
Properties:
Name Type Description idle
boolean true
if the object is idle (onIdle
would call a handler immediately). -
inherited ready
-
Properties:
Name Type Description ready
boolean true
if this feature has been initialized,false
if it was destroyed,undefined
if it was created but not initialized.
Static Methods
-
staticgeo.polygonFeature.create(layer, spec){geo.polygonFeature|null}
-
Create a polygonFeature from an object.
Name Type Description layer
geo.layer The layer to add the feature to
spec
geo.polygonFeature.spec The object specification
- See:
Returns:
Type Description geo.polygonFeature | null
Methods
-
inherited addChild(child){this}
-
Add a child (or an array of children) to the object.
Name Type Description child
geo.object | Array.<geo.object> A child object or array of child objects.
Returns:
Type Description this -
inherited addPromise(promise){this}
-
Add the promise here and also propagate up the scene tree.
Name Type Description promise
Promise A promise object.
Returns:
Type Description this -
inherited bin(val, actualValue){number|this}
-
Get/Set bin of the feature. The bin number is used to determine the order of multiple features on the same layer. It has no effect except on the webgl renderer. A negative value hides the feature without stopping interaction with it. Otherwise, features with higher bin numbers are drawn above those with lower bin numbers. If two features have the same bin number, their order relative to one another is indeterminate and may be unstable.
Name Type Description val
number optional The new bin number. If
undefined
, return the current bin number. Ifnull
, the bin is dynamically computed based on order within the parent. If children are nested, this may not be what is desired.actualValue
boolean optional If truthy and
val
is undefined, return the actual value of bin, rather than the dynamically computed value.Returns:
Type Description number | this The current bin number or a reference to this
. -
inherited boxSearch(lowerLeft, upperRight, opts, gcs){geo.feature.searchResult}
-
Search for features contained within a rectangular region.
Name Type Description lowerLeft
geo.geoPosition Lower-left corner.
upperRight
geo.geoPosition Upper-right corner.
opts
object optional Additional search options.
Name Type Default Description partial
boolean false optional If truthy, include features that are partially in the box, otherwise only include features that are fully within the region.
gcs
string | geo.transform | null optional Input gcs.
undefined
to use the interface gcs,null
to use the map gcs, or any other transform.Returns:
Type Description geo.feature.searchResult An object with a list of features and feature indices that are located at the specified point. -
inherited buildTime(val){geo.timestamp|this}
-
Get/Set timestamp of last time a build happened.
Name Type Description val
geo.timestamp optional The new build timestamp object or
undefined
to get the current build timestamp object.Returns:
Type Description geo.timestamp | this -
inherited children(){Array.<geo.object>}
-
Get an array of the child objects.
Returns:
Type Description Array.<geo.object> A copy of the array of child objects. -
data(arg){geo.polygonFeature|object}
-
Get/set data.
Name Type Description arg
object optional if specified, use this for the data and return the feature. If not specified, return the current data.
Returns:
Type Description geo.polygonFeature | object -
inherited dataTime(val){geo.timestamp|this}
-
Get/Set timestamp of data change.
Name Type Description val
geo.timestamp optional The new data timestamp object or
undefined
to get the current data timestamp object.Returns:
Type Description geo.timestamp | this -
inherited dependentFeatures(arg){Array.<geo.feature>|this}
-
Get/Set a list of dependent features. Dependent features have their visibility changed at the same time as the feature.
Name Type Description arg
Array.<geo.feature> optional If specified, the new list of dependent features. Otherwise, return the current list of dependent features.
Returns:
Type Description Array.<geo.feature> | this The current list of dependent features or a reference to this
. -
draw(){object}
-
Redraw the object.
Returns:
Type Description object The results of the superclass draw function. -
inherited featureGcsToDisplay(c){geo.screenPosition}
-
Convert from the feature's gcs coordinates to display coordinates.
Name Type Description c
geo.geoPosition The input coordinate to convert.
Returns:
Type Description geo.screenPosition Display space coordinates. -
fromPolygonList(poly, opts){this}
-
Set the data, position accessor, and polygon accessor to use a list of polygons.
Name Type Description poly
geo.polygonList A list of polygons.
opts
geo.util.polyop.spec optional Ignored.
Returns:
Type Description this -
inherited gcs(val){string|this}
-
Get/Set the projection of the feature.
Name Type Description val
string optional nullable If
undefined
, return the current gcs. Ifnull
, use the map's interface gcs. Otherwise, set a new value for the gcs.Returns:
Type Description string | this A string used by geo.transform
. If the map interface gcs is in use, that value will be returned. If the gcs is set, return the current class instance. -
Report if an event handler is bound to this object.
Name Type Description event
string | Array.<string> An event or list of events to check.
handler
function optional A function that might be bound. If
undefined
, this will reporttrue
if there is any handler for the specified event.Returns:
Type Description boolean true if any of the specified events are bound to the specified handler. -
inherited geoOff(event, arg){this}
-
Remove handlers from one event or an array of events. If no event is provided all handlers will be removed.
Name Type Description event
string | Array.<string> optional An event or a list of events from
geo.event
or defined by the user, orundefined
to remove all events (in which casearg
is ignored).arg
function | Array.<function()> optional nullable A function or array of functions to remove from the events or a falsy value to remove all handlers from the events.
Returns:
Type Description this -
inherited geoOn(event, handler){this}
-
Bind an event handler to this object.
Name Type Description event
string An event from
geo.event
or a user-defined value.handler
function A function that is called when
event
is triggered. The function is passed ageo.event
object.Returns:
Type Description this -
Bind an event handler to this object that will fire once and then deregister itself.
Name Type Description event
string An event from
geo.event
or a user-defined value.handler
function A function that is called when
event
is triggered. The function is passed ageo.event
object.Returns:
Type Description function The actual bound handler. This is a wrapper around the handler that was passed to the function. -
inherited geoTrigger(event, args, childrenOnly){this}
-
Trigger an event (or events) on this object and call all handlers.
Name Type Description event
string The event to trigger.
args
object Arbitrary argument to pass to the handler.
childrenOnly
boolean optional If truthy, only propagate down the tree.
Returns:
Type Description this -
Get the layer referenced by the feature.
Returns:
Type Description geo.layer The layer associated with the feature. -
modified(){object}
-
Update the timestamp to the next global timestamp value. Mark sub-features as modified, too.
Returns:
Type Description object The results of the superclass modified function. -
mouseOverOrderClosestBorder(evt)
-
If the selectionAPI is on, then setting
this.geoOn(geo.event.feature.mouseover_order, this.mouseOverOrderClosestBorder)
will make it so that the mouseon events prefer the polygon with the closet border, including hole edges.Name Type Description evt
geo.event The event; this should be triggered from
geo.event.feature.mouseover_order
. -
inherited mouseOverOrderHighestIndex(evt)
-
If the selectionAPI is on, then setting
this.geoOn(geo.event.feature.mouseover_order, this.mouseOverOrderHighestIndex)
will make it so that the mouseon events prefer the highest index feature.Name Type Description evt
geo.event The event; this should be triggered from
geo.event.feature.mouseover_order
. -
Bind a handler that will be called one time when all internal promises are resolved. If there are no outstanding promises, this is invoked synchronously.
Name Type Description handler
function A function taking no arguments.
Returns:
Type Description this -
inherited parent(arg){this|geo.sceneObject}
-
Get/set parent of the object.
Name Type Description arg
geo.sceneObject optional The new parant or
undefined
to get the current parent.Returns:
Type Description this | geo.sceneObject -
pointSearch(coordinate, gcs){object}
-
Point search method for selection api. Returns markers containing the given point.
Name Type Description coordinate
geo.geoPosition point to search for.
gcs
string | geo.transform | null optional Input gcs.
undefined
to use the interface gcs,null
to use the map gcs, or any other transform.Returns:
Type Description object An object with index
: a list of polygon indices, andfound
: a list of polygons that contain the specified coordinate. -
polygon(val){object|function|this}
-
Get/set polygon accessor.
Name Type Description val
object | function optional If not specified, return the current polygon accessor. If specified, use this for the polygon accessor and return
this
. If a function is given, the function is passed(dataElement, dataIndex)
and returns ageo.polygon
.Returns:
Type Description object | function | this The current polygon accessor or this feature. -
polygonCoordinates(){Array.<geo.polygonObject>}
-
Get the set of normalized polygon coordinates.
Returns:
Type Description Array.<geo.polygonObject> An array of polygon positions. Each has outer
andinner
if it has any coordinates, or isundefined
. -
polygonSearch(poly, opts, gcs){object}
-
Returns polygons that are contained in the given polygon. This could fail to return polygons that are less than their stroke width outside of the specified polygon and whose vertices are not near the selected polygon.
Name Type Description poly
geo.polygonObject A polygon as an array of coordinates or an object with
outer
and optionallyinner
parameters.opts
object optional Additional search options.
Name Type Default Description partial
boolean false optional If truthy, include polygons that are partially in the polygon, otherwise only include polygons that are fully within the region.
gcs
string | geo.transform | null optional Input gcs.
undefined
to use the interface gcs,null
to use the map gcs, or any other transform.Returns:
Type Description object An object with index
: a list of polygon indices,found
: a list of polygons within the polygon, andextra
: an object with index keys containing an object with apartial
key and a boolean value to indicate if the polygon is on the specified polygon's border. -
position(val){geo.geoPosition|this}
-
Get/Set position accessor.
Name Type Description val
geo.geoPosition | function optional If not specified, return the current position accessor. If specified, use this for the position accessor and return
this
. If a function is given, this is called with(vertexElement, vertexIndex, dataElement, dataIndex)
.Returns:
Type Description geo.geoPosition | this The current position or this feature. -
rdpSimplifyData(data, tolerance, posFunc, polyFunc, returnData){this|array}
-
Take a set of data, reduce the number of vertices per polygon using the Ramer–Douglas–Peucker algorithm, and use the result as the new data. This changes the instance's data, the position accessor, and the polygon accessor.
Name Type Default Description data
array A new data array.
tolerance
number optional The maximum variation allowed in map.gcs units. A value of zero will only remove perfectly collinear points. If not specified, this is set to a half display pixel at the map's current zoom level.
posFunc
function this.style.get('position') optional The function to get the position of each vertex.
polyFunc
function this.style.get('polygon') optional The function to get each polygon.
returnData
boolean false optional If truthy, return the new data array rather than modifying the feature.
Returns:
Type Description this | array -
inherited removeChild(child){this}
-
Remove a child (or array of children) from the object.
Name Type Description child
geo.object | Array.<geo.object> A child object or array of child objects.
Returns:
Type Description this -
inherited removePromise(promise){this}
-
Remove the promise here and also propagate up the scene tree.
Name Type Description promise
Promise A promise object.
Returns:
Type Description this -
inherited renderer(){geo.renderer}
-
Get the renderer used by the feature.
Returns:
Type Description geo.renderer The renderer used to render the feature. -
inherited selectionAPI(arg, direct){boolean|string|this}
-
Get/Set if the selection API is enabled for this feature.
Name Type Description arg
boolean | string optional undefined
to return the selectionAPI state, a boolean to change the state, or'auto'
to set the state based on the existence of event handlers. When getting the state, ifdirect
is not specified,'auto'
is never returned.direct
boolean optional If
true
, when getting the selectionAPI state, disregard the state of the parent layer, and when setting, refresh the state regardless of whether it has changed or not.Returns:
Type Description boolean | string | this Either the selectionAPI state or the feature instance. -
style(arg1, arg2){object|this}
-
Get/Set style used by the feature. This calls the super function, then checks if strokes are required.
See the style specification
styleSpec
for available styles.Name Type Description arg1
string | object optional If
undefined
, return the current style object. If a string andarg2
is undefined, return the style associated with the specified key. If a string andarg2
is defined, set the named style to the specified value. Otherwise, extend the current style with the values in the specified object.arg2
* optional If
arg1
is a string, the new value for that style.Returns:
Type Description object | this Either the entire style object, the value of a specific style, or the current class instance. -
inherited style.get(key){function|object}
-
A uniform getter that always returns a function even for constant styles. This can also return all defined styles as functions in a single object.
If the style
key
is a color, the returned function will also coerce the result to be ageo.geoColorObject
.Name Type Description key
string optional If defined, return a function for the named style. Otherwise, return an object with a function for all defined styles.
Returns:
Type Description function | object Either a function for the named style or an object with functions for all defined styles. -
inherited timestamp(){number}
-
Get time.
Returns:
Type Description number The timestamp. This is 0 if the timestamp has never been modified. -
toPolygonList(opts){geo.polygonList}
-
Return the polygons as a polygon list: an array of polygons, each of which is an array of polylines, each of which is an array of points, each of which is a 2-tuple of numbers.
Name Type Description opts
geo.util.polyop.spec optional Ignored.
Returns:
Type Description geo.polygonList A list of polygons. -
inherited updateStyleFromArray(keyOrObject, styleArray, refresh){this}
-
Set style(s) from array(s). For each style, the array should have one value per data item. The values are not converted or validated. Color values should be
geo.geoColorObject
s. If invalid values are given the behavior is undefined. For some feature styles, if the first entry of an array is itself an array, then each entry of the array is expected to be an array, and values are used from these subarrays. This allows a style to apply, for instance, per vertex of a data item rather than per data item.Name Type Default Description keyOrObject
string | object Either the name of a single style or an object where the keys are the names of styles and the values are each arrays.
styleArray
array If keyOrObject is a string, an array of values for the style. If keyOrObject is an object, this parameter is ignored.
refresh
boolean false optional true
to redraw the feature when it has been updated. If an object with styles is passed, the redraw is only done once.Returns:
Type Description this The feature instance. -
inherited updateTime(val){geo.timestamp|this}
-
Get/Set timestamp of last time an update happened.
Name Type Description val
geo.timestamp optional The new update timestamp object or
undefined
to get the current update timestamp object.Returns:
Type Description geo.timestamp | this -
inherited visible(val, direct){boolean|this}
-
Get/Set the visibility of the feature.
Name Type Description val
boolean optional A boolean to change the visibility, or
undefined
to return the visibility.direct
boolean optional If
true
, when getting the visibility, disregard the visibility of the parent layer, and when setting, refresh the state regardless of whether it has changed or not. Otherwise, the functional visibility is returned, where both the feature and the layer must be visible for atrue
result.Returns:
Type Description boolean | this Either the visibility (if getting) or the feature (if setting).