@ferrybig/cgeodata-reader
    Preparing search index...

    One entry of the place hierarchy with its ancestors resolved. Shaped like QueryResult's country/region/city trio so the two are easy to relate: a country has region and city null, a region has city null and region pointing at itself, a city has all three set.

    interface Place {
        id: number;
        localName: string;
        internationalName: string;
        names: string[];
        level: PlaceLevel;
        country: PlaceRef;
        region: PlaceRef | null;
        city: PlaceRef | null;
    }

    Hierarchy (View Summary)

    Index
    id: number

    The place's global id (Section 7.5): what place(), placeIds() and locate() take. Stable within one file, not between builds.

    localName: string

    The place's name in its own language and script, as people there write it: "東京都", "Den Haag". Field 0 of its name entry, never empty.

    internationalName: string

    The place's international (English) name -- "Tokyo", "The Hague" -- or localName where it has none, which is also the case for a place whose names are the same. Field 1 of its name entry. Pick this one when a name is shown to everyone regardless of their language, or stored once for all of them.

    names: string[]

    Every name, in name-entry order (Section 7.4): localName, then the international name ("" where it has none but alternatives follow), then alternative names and spellings ("'s-Gravenhage"). For search and for showing alternatives; to display one name, use localName or internationalName rather than indexing into this.

    level: PlaceLevel

    The place's own level.

    country: PlaceRef

    Its country (itself, for a country).

    region: PlaceRef | null

    Its region (itself, for a region); null for a country.

    city: PlaceRef | null

    Itself, for a city; null otherwise.