All examplesbasicsbasic-map
§ examples · basics

Basic Map

Smallest viable MapGPU: one MapView, one raster basemap, Ankara in view.

slugbasic-map
source51 lines
statuslive
tsexamples-src/basic-map.ts
1/**
2 * Basic Map — MapView + a raster basemap. 2D/3D toggle demonstrates
3 * `view.switchTo(...)` keeping layers and tile cache alive across modes.
4 */
5 
6import { MapView } from "mapgpu";
7import { RasterTileLayer } from "mapgpu/layers";
8import { RenderEngine } from "mapgpu/render";
9 
10import type { RunResultObject } from "@/components/examples/ExampleCanvas";
11 
12export async function run(container: HTMLElement): Promise<RunResultObject> {
13 const view = new MapView({
14 container,
15 renderEngine: new RenderEngine(),
16 mode: "2d",
17 center: [32.866, 39.925],
18 zoom: 6,
19 minZoom: 2,
20 maxZoom: 18,
21 backgroundColor: "transparent",
22 });
23 
24 view.map.add(
25 new RasterTileLayer({
26 id: "osm",
27 urlTemplate: "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
28 minZoom: 0,
29 maxZoom: 19,
30 attribution: "© OpenStreetMap contributors",
31 }),
32 );
33 
34 await view.when();
35 
36 return {
37 dispose: () => view.destroy(),
38 controls: [
39 {
40 kind: "toggle",
41 id: "mode",
42 labels: ["2D", "3D"],
43 initial: false,
44 onChange: async (on) => {
45 await view.switchTo(on ? "3d" : "2d");
46 },
47 },
48 ],
49 };
50}