本文へ移動

Chizu地図

SVGの地図を描き、地域を表示範囲に収め、番号付きの注記や地理クイズを英語と日本語の名前で作れます。

「地図」は、土地や場所を図で表したものです。 名前について(英語)

目次

リファレンス · 表示範囲・形・クイズの道具

featureMap関数

リファレンスの説明と例は英語です。見出しと目次は日本語です。

A layer as a map of its own: the same canvas, the features as its regions. Every function of the engine takes it, so a sea is framed with focusBox, asked about with findQuestion (its look-alikes are the seas next to it, then the rest of its group, then the nearest), and read from a paste with placesFromText.

インポート

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

定義

function featureMap(map: ChizuMap, layer: Pick<ChizuFeatureLayer, "features">, choices?: readonly ChizuFeatureChoice[]): ChizuMap

引数

名前型説明
mapChizuMap

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

layerPick<ChizuFeatureLayer, "features">

The native feature layer; its coordinates must match the map used for drawing.

choices (省略可)readonly ChizuFeatureChoice[]

Native physical-feature groups, kinds, water or all selections.

戻り値

ChizuMap

A layer as a map of its own: the same canvas, the features as its regions. Every function of the engine takes it, so a sea is framed with focusBox, asked about with findQuestion (its look-alikes are the seas next to it, then the rest of its group, then the nearest), and read from a paste with placesFromText.

例

import WORLD from "@johnmorrisdotca/chizu/world";
import { loadFeatures } from "@johnmorrisdotca/chizu/load";
import { featureMap, findQuestion, seededRandom } from "@johnmorrisdotca/chizu";

const water = featureMap(WORLD, (await loadFeatures("world"))!, ["water"]);
const caspian = water.regions.find((one) => one.name === "Caspian Sea")!;
const question = findQuestion(water, caspian.code, seededRandom(3))!;
console.log(water.id, question.choices.length, question.choices[question.answerIndex] === caspian.code);
// world-features 4 true
world-features 4 true

出力(このページを作ったときに実行した結果)

ソースを見るGitHub で編集@johnmorrisdotca/chizu 1.5.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。