Ortho Earth · Get started · npm

MapLibre GL JS examples, on ortho

The 139 official MapLibre GL JS examples, run unchanged against the ortho globe engine through its MapLibre-compatible API. Each card shows ortho's rendering and, after the category, how closely it matches MapLibre (answers and sampled pixels). Click a card for the example's source in its ortho form — run it here, copy it, or download it.

3D Terrain

(59%) note

Add 3D terrain from quantized-mesh tiles

(54%) note

Add 3D tiles using three.js

(87%)

Add a 3D model to globe using three.js

(96%)

Add a 3D model using three.js

(98%)

Add a 3D model with babylon.js

(n/a) note

Add a 3D model with shadow using three.js

(98%)

Add a canvas source

(86%) note

Add a COG raster source

(81%) note

Add a color relief layer

(100%)

Add a custom layer with tiles to a globe

(77%) note

Add a custom style layer

(96%)

Add a default marker

(98%)

Add a generated icon to the map

(85%) note

Add a GeoJSON line

(96%)

Add a GeoJSON polygon

(98%)

Add a hillshade layer

(100%)

Add a multidirectional hillshade layer

(91%)

Add a new layer below labels

(98%)

Add a pattern to a polygon

(83%)

Add a raster tile source

(81%) note

Add a simple custom layer on a globe

(96%)

Add a stretchable image to the map

(56%) note

Add a vector tile source

(95%)

Add a video

(100%)

Add a WMS source

(96%)

Add an animated icon to the map

(100%)

Add an icon to the map

(85%) note

Add Contour Lines

(99%)

Add custom icons with Markers

(100%)

Add live realtime data

(86%)

Add multiple geometries from one GeoJSON source

(99%)

Adding 3D models using three.js on terrain

(56%) note

Animate a line

(100%)

Animate a marker

(100%)

Animate a point along a route

(100%)

Animate a point

(100%)

Animate a series of images

(100%)

Animate an icon on the GPU

(100%)

Animate map camera around a point

(86%)

Animate symbol to follow the mouse

(93%)

Attach a popup to a marker instance

(98%)

Center the map on a clicked symbol

(99%)

Change a layer's color with buttons

(94%)

Change a map's language

(91%)

Change building color based on zoom level

(96%)

Change the case of labels

(88%)

Change the default position for attribution

(97%)

Check if WebGL is supported

(98%)

Cooperative gestures

(99%)

Create a draggable Marker

(93%)

Create a draggable point

(87%)

Create a gradient dashed line using an expression

(86%)

Create a gradient line using an expression

(86%)

Create a Heatmap layer on a globe with terrain elevation

(57%)

Create a heatmap layer

(88%)

Create a hover effect

(91%)

Create a time slider

(95%)

Create and style clusters

(98%)

Create deck.gl layer using REST API

(92%)

Customize camera animations

(95%)

Customize the map transform constrain

(86%) note

Disable map rotation

(99%)

Disable scroll zoom

(99%)

Display a globe with a fill extrusion layer

(100%)

Display a globe with a vector map

(97%)

Display a globe with an atmosphere

(100%)

Display a hybrid satellite map with terrain elevation

(66%) note

Display a map with MLT

(89%)

Display a map

(89%)

Display a non-interactive map

(98%)

Display a popup on click

(86%) note

Display a popup on hover

(85%) note

Display a popup

(99%)

Display a remote SVG symbol

(75%) note

Display a satellite map

(100%)

Display and style rich text labels

(89%)

Display buildings in 3D

(58%)

Display HTML clusters with custom properties

(44%)

Display line that crosses 180th meridian

(83%) note

Display map navigation controls

(98%)

Display Performance Metrics

(89%) note

Draw a Circle

(92%)

Draw GeoJSON points

(88%)

Draw geometries with terra-draw

(94%)

Draw polygon with mapbox-gl-draw

(94%)

Elevate symbols above the terrain

(63%) note

Enter a 360° photosphere

(98%)

Extrude polygons for 3D indoor mapping

(94%)

Fill extrusion rounded corners

(65%)

Filter layer symbols using global state

(99%)

Filter symbols by text input

(85%) note

Filter symbols by toggling a list

(84%) note

Filter within a Layer

(75%) note

Fit a map to a bounding box

(93%)

Fit to the bounds of a LineString

(93%)

Fly to a location based on scroll position

(88%)

Fly to a location

(93%)

Generate and add a missing icon to the map

(83%) note

Geocode with Nominatim

(97%)

Get coordinates of the mouse pointer

(99%)

Get features under the mouse pointer

(97%)

Hash routing

(100%)

Jump to a series of locations

(94%) note

Level of Detail Control

(58%) note

Locale switching

(99%)

Locate the user

(95%)

Measure distances

(87%)

Navigate the map with game-like controls

(71%)

Offset the vanishing point using padding

(69%)

PMTiles source and protocol

(94%) note

Render world copies

(90%) note

Restrict map panning to an area

(95%)

Select features with boxZoomEnd callback

(97%)

Set center point above ground

(86%) note

Set pitch and bearing

(99%)

Show polygon information on click

(99%)

Sky, Fog, Terrain

(54%) note

Slowly fly to a location

(93%)

Style labels with font faces

(99%)

Style labels with local fonts

(100%)

Style labels with Web fonts

(100%)

Style lines with a data-driven property

(99%)

Sync movement of multiple maps

(100%) note

Toggle deck.gl layer

(n/a) note

Toggle interactions

(93%)

Update a feature in realtime

(86%)

Update GeoJSON polygons

(100%)

Use a fallback image

(96%)

Use addProtocol to Transform Feature Properties

(99%)

Use locally generated ideographs

(95%)

Variable label placement with offset

(88%)

Variable label placement

(90%)

View a fullscreen map

(99%)

View local GeoJSON (experimental)

(98%)

View local GeoJSON

(98%)

Visualize population density

(98%)

Walk around a map in first person

(71%) note

Zoom and planet size relation on globe

(95%)

Run it yourself. This is the example's HTML with only two paths changed: the MapLibre module import is now @ortho-earth/globe/maplibre, and the CSS comes from unpkg. Save it as index.html in a Vite project that has @ortho-earth/globe installed (Get started, Route A), then npm run dev. The engine's workers must come from your own origin, so a bare CDN import does not work. Run above plays this very source right here.

自分で動かす:例の HTML のうち 2 つの道だけを替えたものです(MapLibre の import → @ortho-earth/globe/maplibre・CSS は unpkg の本物)。@ortho-earth/globe を入れた Vite の企画に index.html として置き、npm run dev。エンジンの worker は自分の origin から配る必要があるので、CDN からの直 import では動きません。上の Run はこの本文そのものをこの場で動かします。