Skip to content

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 String layer id (required).
  • geometries Geometry[] | Object geometries to add; a plain options object is recognized as options.
  • options Object construction options; options.style sets the layer style.

Options

OptionTypeDescriptionDefault
debugBooleangeometry debug modefalse
enableSimplifyBooleansimplify geometry before rendertrue
geometryEventsBooleanfire geometry eventstrue
defaultIconSize[number, number]default Marker icon size[20,20]
enableAltitudeBooleanrender geometry by altitudetrue
altitudePropertyStringgeometry altitude property'altitude'
drawAltitudeBooleandraw altitude linesfalse
altitudeNumberlayer altitude0
sortByDistanceToCameraBooleansort Markers by camera distancefalse
roundPointBooleanround points before drawingfalse
collisionBooleanenable collision detectionfalse
collisionScopeStringcollision scope (layer/map)'layer'
cursorStringlayer cursor style

Common options inherited from Layer also apply.

Member Methods

Geometry management

  • addGeometry(geometries, fitView?): this — add one or more geometries; fitView=true auto-fits the view
  • removeGeometry(geometries): this — remove one or more geometries
  • getGeometryById(id): Geometry — get a single geometry by id
  • getGeometries(filter?): Geometry[] — get all or filtered geometries
  • getFirstGeometry(): Geometry / getLastGeometry(): Geometry — get the bottom/top geometry
  • getCount(): number — geometry count
  • getExtent(): Extent — merged extent of all geometries
  • forEach(fn, context?): this — iterate geometries
  • filter(fn, context?): Geometry[] — return geometries passing a test
  • isEmpty(): boolean — whether the layer is empty
  • clear(): 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 coordinate
  • identifyAtPoint(point, options?) — identify geometry at a container point
  • getAltitude() — 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

EventFired when
addgeogeometry added
clearlayer cleared
setstylestyle set
removestylestyle removed

Common layer events — see Layer.

js
layer.on("addgeo", (e) => {
  console.log("added", e.geometries.length, "geometries");
});