ShapeLayer
Class: ShapeLayer
Draws GeoJSON line and polygon geometries with per-feature
simplestyle-spec
styling. Each instance owns its own source and two data-driven layers (a fill
for polygons and a line for line-strings and polygon outlines), so multiple
ShapeLayer instances can coexist on one map (e.g. different hover styles).
Geometry is GeoJSON ([lng, lat]), not the SDK's lat-first Coordinates.
Interactive by default: hovering a shape highlights it (and shows a pointer
cursor), and `on('click')` reports clicks. Pass
{ interactive: false } for decorative shapes.
WemapMap.remove() does not destroy this layer — call destroy
explicitly (or remove({ layers: true })).
Constructors
Constructor
new ShapeLayer(
wemapMap,options?):ShapeLayer
Parameters
wemapMap
options?
ShapeLayerOptions = {}
Returns
ShapeLayer
Methods
clear()
clear():
void
Remove every shape and the underlying source/layers.
Returns
void
destroy()
destroy():
void
Remove all shapes and detach listeners. Idempotent.
Returns
void
drawLineString()
drawLineString(
geometry,properties?):string
Draw a line styled with simplestyle-spec properties (stroke,
stroke-opacity, stroke-width).
Parameters
geometry
properties?
Returns
string
The shape id, for remove.
drawPolygon()
drawPolygon(
geometry,properties?):string
Draw a polygon styled with simplestyle-spec properties (fill,
fill-opacity, stroke, stroke-opacity, stroke-width).
Parameters
geometry
properties?
Returns
string
The shape id, for remove.
on()
on(
event,listener): () =>void
Subscribe to clicks on any shape. No-op when the layer was created with
{ interactive: false }.
Parameters
event
"click"
listener
Returns
An unsubscribe function.
() => void
remove()
remove(
id):void
Remove a shape by the id returned from a draw* call. Unknown id is a no-op.
Parameters
id
string
Returns
void