Skip to the content

Chizu地図

Draw SVG maps, frame regions, place numbered callouts and build geography quizzes with English and Japanese names.

Chizu is the Japanese word 地図 for map. About the name

Contents

Reference · Framing, geometry and quiz tools

layoutCalloutsfunction

Numbered circles in the open space around and between the regions of a map, each with a leader line to its region.

A circle sits in the water and not on the land, no two leaders cross, and a leader crosses as little land as it can (see placeCallouts for how the three are weighed). The result is geometry only: draw it with drawChizu's callouts option or with anything else that draws circles and lines. It is the same arrangement for the same map, window and list, every time, with no randomness in it that is not seeded.

On a map that wraps, a window that overhangs the cut shows land twice, so both copies keep the circles out, and a region is numbered where the window shows it.

Import it

import { layoutCallouts } from "@johnmorrisdotca/chizu";

Definition

function layoutCallouts(map: Pick<ChizuMap, "regions" | "insets" | "width" | "height" | "wraps">, request: CalloutRequest): CalloutSpot[]

Parameters

NameTypeDescription
mapPick<ChizuMap, "width" | "height" | "regions" | "insets" | "wraps">

The native map or map fields required by this signature; coordinates and region codes belong to its canvas.

requestCalloutRequest

Native codes, framing, numbering and layout choices for the callout sheet.

Returns

CalloutSpot[]

Numbered circles in the open space around and between the regions of a map, each with a leader line to its region.

Examples

import WORLD from "@johnmorrisdotca/chizu/world";
import { layoutCallouts } from "@johnmorrisdotca/chizu";

const spots = layoutCallouts(WORLD, { codes: ["JP", "BR", "EG", "AU"], radiusRatio: 0.02 });
console.log(spots.map((spot) => `${spot.number} ${spot.code}`).join(", "));
// 1 JP, 2 BR, 3 EG, 4 AU
1 JP, 2 BR, 3 EG, 4 AU

What it prints (run when this page was built)

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/chizu 1.5.0.