Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions counterexamples/divisions/geographic_area/bad-class.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
id: counterexample:geography:bad-class
type: Feature
geometry:
type: Polygon
coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: cultural
class: regional
names:
primary: A cultural geography with an invalid class.
ext_expected_errors:
- "value must be one of 'colloquial', 'postal'"
17 changes: 17 additions & 0 deletions counterexamples/divisions/geographic_area/bad-geometry-type.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
id: counterexample:geography:bad-geometry
type: Feature
geometry:
type: Point
coordinates: [0, 0]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: functional
class: postal
names:
primary: A geography with invalid Point geometry (must be Polygon or MultiPolygon).
ext_expected_errors:
- "/properties/type/enum]: value must be 'Polygon'"
- "/properties/type/enum]: value must be 'MultiPolygon'"
16 changes: 16 additions & 0 deletions counterexamples/divisions/geographic_area/bad-subtype.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
id: counterexample:geography:bad-subtype
type: Feature
geometry:
type: Polygon
coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: administrative
class: colloquial
names:
primary: A geography with an invalid subtype.
ext_expected_errors:
- "value must be one of 'functional', 'cultural'"
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
id: counterexample:geography:colloquial-functional-mismatch
type: Feature
geometry:
type: Polygon
coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: functional
class: colloquial
names:
primary: A functional geography with colloquial class (only allowed for cultural).
ext_expected_errors:
- "value must be 'cultural'"
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
id: counterexample:geography:missing-class
type: Feature
geometry:
type: Polygon
coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: cultural
names:
primary: A geography missing required class property.
ext_expected_errors:
- "missing property 'class'"
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
id: counterexample:geography:missing-class-functional
type: Feature
geometry:
type: Polygon
coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: functional
names:
primary: A functional geography missing required class property.
ext_expected_errors:
- "missing property 'class'"
17 changes: 17 additions & 0 deletions counterexamples/divisions/geographic_area/negative-population.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
id: counterexample:geography:negative-population
type: Feature
geometry:
type: Polygon
coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: cultural
class: colloquial
names:
primary: A geography with negative population.
population: -1000
ext_expected_errors:
- "minimum: got -1,000, want 0"
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
id: counterexample:geography:postal-cultural-mismatch
type: Feature
geometry:
type: Polygon
coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: cultural
class: postal
names:
primary: A cultural geography with postal class (only allowed for functional).
ext_expected_errors:
- "value must be 'functional'"
117 changes: 117 additions & 0 deletions docs/schema/reference/divisions/geographic_area.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
---
title: geographic_area
---

import CodeBlock from '@theme/CodeBlock';
import JSONSchemaViewer from "@theme/JSONSchemaViewer";
import generateResolverOptions from "@site/src/components/shared-libs/generateResolverOptions"
import yamlLoad from "@site/src/components/yamlLoad"
import divisions_geographic_area_schema from '!!raw-loader!@site/docs/_schema/divisions/geographic_area.yaml';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import geographic_area_example_cultural_bay_area from '!!raw-loader!@site/docs/_examples/divisions/geographic_area/cultural_colloquial_bay_area.yaml';
import geographic_area_example_cultural_wine_country from '!!raw-loader!@site/docs/_examples/divisions/geographic_area/cultural_colloquial_wine_country.yaml';
import geographic_area_example_functional_zip from '!!raw-loader!@site/docs/_examples/divisions/geographic_area/functional_postal_zip_code.yaml';


# Geographic area

A geographic area is a functional or cultural region that may span across multiple administrative divisions. These regions capture areas defined by shared characteristics, usage patterns, or cultural identity rather than formal administrative boundaries.


<table>
<tbody>
<tr>
<th>Geometry Type</th>
<td><code>Polygon</code> or <code>MultiPolygon</code></td>
</tr>
<tr>
<th>Theme</th>
<td><code>divisions</code></td>
</tr>
<tr>
<th>Type</th>
<td><code>geographic_area</code></td>
</tr>
</tbody>
</table>

## Subtypes

Geographic areas are categorized into two main subtypes:

<Tabs>
<TabItem value="functional" label="functional" default>
<table>
<tbody>
<tr>
<th><code>subtype</code></th>
<td><code>functional</code></td>
</tr>
</tbody>
</table>

Functional regions are defined by functional characteristics or usage patterns, such as postal code regions or economic zones. These areas serve specific operational or administrative purposes.

<p><strong>Classes:</strong></p>
<ul>
<li><code>postal</code> - Postal code regions used for mail delivery and routing (e.g., US ZIP codes, UK postcodes, Canadian postal codes)</li>
</ul>
</TabItem>

<TabItem value="cultural" label="cultural">
<table>
<tbody>
<tr>
<th><code>subtype</code></th>
<td><code>cultural</code></td>
</tr>
</tbody>
</table>

Cultural regions are defined by cultural identity, colloquial usage, or shared cultural characteristics. These areas reflect how people commonly refer to regions in everyday language.

<p><strong>Classes:</strong></p>
<ul>
<li><code>colloquial</code> - Colloquial regions are informal, culturally defined, or commonly referenced areas that do not correspond to official administrative boundaries. Unlike countries, states, counties, or cities—whose boundaries are legally defined—colloquial regions evolve from cultural, historical, economic, or linguistic identity. Examples include South Florida, East Asia, and California Wine Country.</li>
</ul>

</TabItem>
</Tabs>

## Properties

Key properties of geographic areas include:

- **names** - Primary name and optional translations
- **subtype** - Either `functional` or `cultural`
- **class** - Required classification (e.g., `colloquial` for cultural, `postal` for functional)
- **associated_division_ids** - Optional list of division IDs that make up the geographic area
- **population** - Optional population count if inferable
- **cartography** - Cartographic hints including prominence for map display
- **wikidata** - Optional Wikidata ID reference

## Schema

<Tabs>
<TabItem value="browsable" label="Browsable" default>
<JSONSchemaViewer schema={ yamlLoad(divisions_geographic_area_schema) } resolverOptions={ generateResolverOptions({remote: true, yamlBasePath: '/divisions'})}/>
</TabItem>
<TabItem value="yaml" label="YAML" default>
<CodeBlock language="jsx">{divisions_geographic_area_schema}</CodeBlock>
</TabItem>
</Tabs>

## Examples

<Tabs>
<TabItem value="cultural_bay_area" label="Cultural: Bay Area" default>
<CodeBlock language="json">{ JSON.stringify(yamlLoad(geographic_area_example_cultural_bay_area), null, 2) }</CodeBlock>
</TabItem>
<TabItem value="cultural_wine_country" label="Cultural: Wine Country">
<CodeBlock language="json">{ JSON.stringify(yamlLoad(geographic_area_example_cultural_wine_country), null, 2) }</CodeBlock>
</TabItem>
<TabItem value="functional_zip" label="Functional: ZIP Code">
<CodeBlock language="json">{ JSON.stringify(yamlLoad(geographic_area_example_functional_zip), null, 2) }</CodeBlock>
</TabItem>
</Tabs>
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
id: example:geography:cultural:bay_area
type: Feature
geometry:
type: Polygon
coordinates: [
[
[-123.0, 37.3],
[-121.5, 37.3],
[-121.5, 38.5],
[-123.0, 38.5],
[-123.0, 37.3]
]
]
bbox: [-123.0, 37.3, -121.5, 38.5]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: cultural
class: colloquial
names:
primary: San Francisco Bay Area
common:
en: Bay Area
es: Área de la Bahía
zh: 舊金山灣區
cartography:
prominence: 75
min_zoom: 6
max_zoom: 12
associated_division_ids:
- example:division:locality:san_francisco
- example:division:locality:oakland
- example:division:locality:san_jose
- example:division:county:alameda
- example:division:county:contra_costa
- example:division:county:marin
- example:division:county:san_francisco
- example:division:county:san_mateo
- example:division:county:santa_clara
population: 7753000
wikidata: Q213205
sources:
- property: ""
dataset: OpenStreetMap
record_id: relation/111968
update_time: "2023-11-15T10:20:30Z"
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
id: example:geography:cultural:east_asia
type: Feature
geometry:
type: Polygon
coordinates: [
[
[100.0, 20.0],
[145.0, 20.0],
[145.0, 50.0],
[100.0, 50.0],
[100.0, 20.0]
]
]
bbox: [100.0, 20.0, 145.0, 50.0]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: cultural
class: colloquial
names:
primary: East Asia
common:
en: East Asia
es: Asia Oriental
fr: Asie de l'Est
zh: 東亞
zh-Hans: 东亚
ja: 東アジア
ko: 동아시아
cartography:
prominence: 85
min_zoom: 3
max_zoom: 8
associated_division_ids:
- example:division:country:cn
- example:division:country:jp
- example:division:country:kr
- example:division:country:kp
- example:division:country:mn
- example:division:country:tw
population: 1677000000
wikidata: Q27231
sources:
- property: ""
dataset: OpenStreetMap
record_id: relation/345678
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
id: example:geography:cultural:new_england
type: Feature
geometry:
type: Polygon
coordinates: [
[
[-73.5, 41.0],
[-69.5, 41.0],
[-69.5, 47.5],
[-73.5, 47.5],
[-73.5, 41.0]
]
]
bbox: [-73.5, 41.0, -69.5, 47.5]
properties:
theme: divisions
type: geographic_area
version: 0
subtype: cultural
class: colloquial
names:
primary: New England
common:
en: New England
es: Nueva Inglaterra
fr: Nouvelle-Angleterre
pt: Nova Inglaterra
cartography:
prominence: 70
min_zoom: 5
max_zoom: 10
associated_division_ids:
- example:division:region:connecticut
- example:division:region:maine
- example:division:region:massachusetts
- example:division:region:new_hampshire
- example:division:region:rhode_island
- example:division:region:vermont
population: 15116205
wikidata: Q18389
sources:
- property: ""
dataset: OpenStreetMap
record_id: relation/60759
Loading