VectorLayer
VectorLayer is the base vector layer for managing and rendering geometry (Marker, LineString, Polygon, MultiPolygon, etc.), extending OverlayLayer (a subclass of Layer). It provides geometry add/remove/query, style setting, identify, and filtering.
js
import { Map, VectorLayer, Marker } from "maptalks";
const map = new Map("map", { center: [0, 0], zoom: 3 });
const layer = new VectorLayer("vector");
layer.addGeometry(new Marker([0, 0]));
layer.addTo(map);Constructor
js
new VectorLayer(id, geometries?, options?)Parameters:
- id
Stringlayer id (required). - geometries
Geometry[] | Objectgeometries to add; a plain options object is recognized asoptions. - options
Objectconstruction options;options.stylesets the layer style.
Options
| Option | Type | Description | Default |
|---|---|---|---|
debug | Boolean | geometry debug mode | false |
enableSimplify | Boolean | simplify geometry before render | true |
geometryEvents | Boolean | fire geometry events | true |
defaultIconSize | [number, number] | default Marker icon size | [20,20] |
enableAltitude | Boolean | render geometry by altitude | true |
altitudeProperty | String | geometry altitude property | 'altitude' |
drawAltitude | Boolean | draw altitude lines | false |
altitude | Number | layer altitude | 0 |
sortByDistanceToCamera | Boolean | sort Markers by camera distance | false |
roundPoint | Boolean | round points before drawing | false |
collision | Boolean | enable collision detection | false |
collisionScope | String | collision scope (layer/map) | 'layer' |
cursor | String | layer cursor style | — |
Common options inherited from Layer also apply.
Member Methods
Geometry management
addGeometry(geometries, fitView?): this— add one or more geometries;fitView=trueauto-fits the viewremoveGeometry(geometries): this— remove one or more geometriesgetGeometryById(id): Geometry— get a single geometry by idgetGeometries(filter?): Geometry[]— get all or filtered geometriesgetFirstGeometry(): Geometry/getLastGeometry(): Geometry— get the bottom/top geometrygetCount(): number— geometry countgetExtent(): Extent— merged extent of all geometriesforEach(fn, context?): this— iterate geometriesfilter(fn, context?): Geometry[]— return geometries passing a testisEmpty(): boolean— whether the layer is emptyclear(): this— remove all geometries
Style
getStyle(): any/setStyle(style): this— get/set the layer style (mapbox-style filter)removeStyle(): this— remove the layer style
Identify & altitude
identify(coordinate, options?): Geometry[]— identify geometry at a coordinateidentifyAtPoint(point, options?)— identify geometry at a container pointgetAltitude()— get the layer altitude
Inherited from Layer
addTo, remove, show/hide, setOpacity, setZIndex, bringToFront/bringToBack, getMap, toJSON, etc. — see Layer.
Static Methods
VectorLayer.fromJSON(json): VectorLayer | null— restore a layer from JSON
Events
| Event | Fired when |
|---|---|
addgeo | geometry added |
clear | layer cleared |
setstyle | style set |
removestyle | style removed |
Common layer events — see Layer.
js
layer.on("addgeo", (e) => {
console.log("added", e.geometries.length, "geometries");
});