PointMaterial
PointMaterial represents a material for point geometry rendering.
Properties
Section titled “Properties”backfaceCulling
Section titled “backfaceCulling”Type: boolean | undefined
Description: Whether the point is hidden when seen from behind. When false, both sides of the point are drawn. When true, only its front is drawn.
It has no effect on an upright point that follows the camera (the default), which always shows its front. It matters in two cases. With rotateWithCamera set to false, the point can be seen from behind, where it appears mirrored, and turning this on hides it instead. With pointFacing set to "flat", its front faces away from the globe, so turning this on also hides the parts of a large point that wrap over the horizon.
Default: false
Example:
{ point: { pointFacing: "flat", backfaceCulling: true }}center
Section titled “center”Type: { x: number, y: number }
Description: Specifies the shift amount from the center. The range is between 0 and 1. The unit is a relative position to the point circle.
Default: Required
Example:
{ point: { center: { x: 0.5, y: 0.5 } }}clampToGround
Section titled “clampToGround”Type: boolean
Description: Specifies whether to clamp to the ground.
Default: Required
Example:
{ point: { clampToGround: true }}Type: Color
Description: Specifies the point color as a Color instance.
Default: Required
Example:
import { Color } from "@navaramap/three";
{ point: { color: new Color().setHex(0xff0000) }}declutter
Section titled “declutter”Type: boolean | undefined
Description: Participate in screen-space decluttering: when labels/sprites overlap on screen, lower-priority ones are hidden. Enabled by default. Set to false to draw every label unconditionally.
Default: true
Example:
{ point: { declutter: false }}declutterPriority
Section titled “declutterPriority”Type: number | undefined
Description: Placement priority for decluttering. Higher wins. Only meaningful when declutter is enabled. Can be overridden per feature via FeatureEvaluator.evaluate().
Default: 0.0
Example:
{ point: { declutter: true, declutterPriority: 1 }}depthTest
Section titled “depthTest”Type: boolean | undefined
Description: A variable that determines whether front-facing models occlude back-facing models.
Default: true
Example:
{ point: { depthTest: true }}effectIds
Section titled “effectIds”Type: string[] | undefined
Description: Specifies the IDs of selective effects to apply (e.g., “bloom”, “outline”). Used in conjunction with SelectiveBloomEffectDesc or SelectiveOutlineEffectDesc.
Default: undefined
Example:
{ point: { effectIds: ["bloom", "outline"] }}emissiveColor
Section titled “emissiveColor”Type: Color | undefined
Description: Specifies the emissive color as a Color instance.
Default: undefined
Example:
import { Color } from "@navaramap/three";
{ point: { emissiveColor: new Color().setHex(0xff0000) }}emissiveIntensity
Section titled “emissiveIntensity”Type: number | undefined
Description: Specifies the emissive intensity.
Default: undefined
Example:
{ point: { emissiveIntensity: 0.5 }}geometryTypes
Section titled “geometryTypes”Type: ("point" | "line" | "polygon")[] | undefined
Description: Source geometry categories this material consumes. Adding "line" emits one point per line-string vertex, and adding "polygon" emits one point per polygon-ring vertex (the closing duplicate vertex is skipped). Setting the array replaces the default, so include "point" when point geometry should keep rendering. This option applies when the layer’s geometry is built: set it at layer creation. layer.update() applies a new value only to tiles loaded afterwards, so already-loaded tiles keep their previous geometry until the layer is re-created.
Default: ["point"]
Example:
{ point: { geometryTypes: ["point", "polygon"] }}height
Section titled “height”Type: number
Description: Specifies the height. The unit is meters.
Default: Required
Example:
{ point: { height: 100 // 100 meters }}offsetDepth
Section titled “offsetDepth”Type: boolean | undefined
Description: Avoids overlap with the earth’s surface. Use this to prevent the point from clipping into the earth’s surface.
Default: undefined
Example:
{ point: { offsetDepth: true }}opacity
Section titled “opacity”Type: number | undefined
Description: Specifies the opacity of the point. Valid range is 0.0 (fully transparent) to 1.0 (fully opaque).
Default: 1.0
Example:
{ point: { transparent: true, opacity: 0.5 // 50% opacity }}sizeInMeters
Section titled “sizeInMeters”Type: boolean | undefined
Description: Whether the size is specified in meters. If false, the size is in pixels.
Default: true
Example:
{ point: { sizeInMeters: true }}pointFacing
Section titled “pointFacing”Type: "upright" | "flat" | undefined
Description: Whether the point stands up or lies on the globe surface. "upright" keeps it standing. "flat" lays it on the globe surface around its anchor, following the globe’s curvature, so it reads as painted onto the surface and foreshortens with camera pitch.
Combine with rotateWithCamera for four behaviours:
pointFacing | rotateWithCamera | Result |
|---|---|---|
"upright" | true | Screen-aligned billboard, never foreshortened (the default) |
"upright" | false | Standing on the surface at a fixed bearing |
"flat" | true | Painted on the surface, turned to keep facing the viewer |
"flat" | false | Painted on the surface, north-up, turning with the map |
Can also be set per feature from a feature evaluator as facing.
Default: "upright"
Example:
{ point: { pointFacing: "flat" }}rotateWithCamera
Section titled “rotateWithCamera”Type: boolean | undefined
Description: Whether the point turns to follow the camera. When true, it always faces the viewer. When false, it is fixed in its anchor’s local east/north/up frame, and moving the camera never reorients it. With "upright", it stands on the surface facing south, so it is seen edge-on from directly above and mirrored from behind.
Can also be set per feature from a feature evaluator.
Default: true
Example:
{ point: { pointFacing: "upright", rotateWithCamera: false }}rotation
Section titled “rotation”Type: number | undefined
Description: Rotates the point within its own plane around its anchor point, in degrees, clockwise as seen from the front. The rotation is applied on top of the orientation that pointFacing and rotateWithCamera resolve to.
center decides where inside the point the pivot sits.
Can also be set per feature from a feature evaluator, so every point in a layer can point a different way.
Default: 0.0
Example:
{ point: { rotation: 45 }}Type: boolean | undefined
Description: Specifies whether to show the point.
Default: undefined
Example:
{ point: { show: true }}Type: number
Description: Specifies the size of the point. The unit is meters.
Default: Required
Example:
{ point: { size: 10 // 10 meters }}transparent
Section titled “transparent”Type: boolean | undefined
Description: Specifies whether to consider the point’s transparency. Note that setting this to true may cause the point to not display correctly when effects are enabled.
Default: undefined
Example:
{ point: { transparent: false }}