{"id":50284055,"url":"https://github.com/rapideditor/country-coder","last_synced_at":"2026-05-28T01:12:25.227Z","repository":{"id":35201887,"uuid":"216906912","full_name":"rapideditor/country-coder","owner":"rapideditor","description":"📍➡️ 🇩🇰 Convert longitude-latitude pairs to ISO 3166-1 codes quickly and locally","archived":false,"fork":false,"pushed_at":"2026-04-24T19:33:27.000Z","size":1185,"stargazers_count":248,"open_issues_count":9,"forks_count":20,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-04-24T21:31:31.415Z","etag":null,"topics":["borders","countries","country-codes","hacktoberfest","javascript"],"latest_commit_sha":null,"homepage":"https://ideditor.codes","language":"JSON","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rapideditor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2019-10-22T20:47:07.000Z","updated_at":"2026-04-24T19:33:32.000Z","dependencies_parsed_at":"2025-12-03T03:06:27.026Z","dependency_job_id":null,"html_url":"https://github.com/rapideditor/country-coder","commit_stats":{"total_commits":290,"total_committers":9,"mean_commits":32.22222222222222,"dds":0.6655172413793103,"last_synced_commit":"a2c63d1ae7516edbe5e1ebc7529f4004eda28841"},"previous_names":["ideditor/country-coder"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/rapideditor/country-coder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapideditor%2Fcountry-coder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapideditor%2Fcountry-coder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapideditor%2Fcountry-coder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapideditor%2Fcountry-coder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rapideditor","download_url":"https://codeload.github.com/rapideditor/country-coder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapideditor%2Fcountry-coder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33589887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["borders","countries","country-codes","hacktoberfest","javascript"],"created_at":"2026-05-28T01:12:24.444Z","updated_at":"2026-05-28T01:12:25.217Z","avatar_url":"https://github.com/rapideditor.png","language":"JSON","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![build](https://github.com/rapideditor/country-coder/workflows/build/badge.svg)](https://github.com/rapideditor/country-coder/actions?query=workflow%3A%22build%22)\n[![npm version](https://badge.fury.io/js/%40rapideditor%2Fcountry-coder.svg)](https://badge.fury.io/js/%40rapideditor%2Fcountry-coder)\n\n# country-coder\n\n📍 ➡️ 🇩🇰 Convert longitude-latitude pairs to [ISO 3166-1 codes](https://en.wikipedia.org/wiki/ISO_3166-1) quickly and locally\n\n\n## What is it?\n\n`country-coder` is a lightweight package that looks up region identifiers for geographic points without calling a server. It can code and convert between several common IDs:\n\n- 🆎 [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) (`ZA`)\n- 🔤 [ISO 3166-1 alpha-3 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) (`ZAF`)\n- 3️⃣ [ISO 3166-1 numeric-3 code](https://en.wikipedia.org/wiki/ISO_3166-1_numeric) (`710`)\n- 3️⃣ [United Nations M49 code](https://en.wikipedia.org/wiki/UN_M49) (`710`)\n- 🌐 [Wikidata QID](https://www.wikidata.org/wiki/Q43649390) (`Q258`)\n- 🇺🇳 [Emoji flag](https://en.wikipedia.org/wiki/Regional_Indicator_Symbol) (🇿🇦)\n- 💻 [ccTLD (country code top-level domain)](https://en.wikipedia.org/wiki/Country_code_top-level_domain) (`.za`)\n\nResults can optionally include non-country ISO 3166-1 features, such as Puerto Rico (`PR`) or the Isle of Man (`IM`). Some unofficial yet exceptionally-reserved or user-assigned ISO codes are also supported, such as the European Union (`EU`) and Kosovo (`XK`), as well as M49 regions like Africa (`002`) or Polynesia (`061`).\n\nIn addition to identifiers, `country-coder` can provide basic regional information:\n\n- ☎️ [Telephone Calling Codes](https://en.wikipedia.org/wiki/List_of_country_calling_codes) (+44)\n- 🛣 [Driving Side](https://en.wikipedia.org/wiki/Left-_and_right-hand_traffic) (right, left)\n- 🚗 [Traffic Speed Unit](https://en.wikipedia.org/wiki/Speed_limit#Signage) (km/h, mph)\n- 🚚 [Vehicle Height Unit](https://wiki.openstreetmap.org/wiki/Key:maxheight) (m, ft)\n- 🇪🇺 [European Union Membership](https://en.wikipedia.org/wiki/Member_state_of_the_European_Union)\n\n\n#### Advantages\n\nClient-side coding has a number of benefits over server-side solutions:\n\n- ✅ 🚅 *Performance*: get fast, reliable results at scale\n- ✅ ✌️ *Ease of Use*: forget async callbacks, network errors, API keys, and rate limits\n- ✅ 🕶 *Privacy*: keep your location data on-device\n- ✅ 📴 *Offline Workflows*: deploy to connection-challenged environments\n\n#### Caveats\n\n`country-coder` prioritizes package size and lookup speed over precision. Thus, it's **not** suitable for some situations and use cases:\n\n- 🚫 🛂 *Disputed Borders*: only one country is coded per point, roughly the \"de facto controlling country\"\n- 🚫 🚢 *Maritime Borders*: only points on land are supported; borders over water are highly generalized\n- 🚫 🇦🇶 *Antarctic Borders*: [territorial claims in Antarctica](https://en.wikipedia.org/wiki/Territorial_claims_in_Antarctica) aren't widely recognized and are excluded\n- 🚫 🖋 *Complex Borders*: land borders are of varying detail and may be imprecise at granular scales\n- 🚫 🧩 *Country Subdivisions*: most provinces and similar features under [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) cannot be coded\n- 🚫 📇 *Multilingual Naming*: only basic English names are included; get display names via another package or the [Wikidata API](https://www.wikidata.org/wiki/Special:ApiSandbox#action=wbgetentities\u0026format=json\u0026ids=Q258\u0026sites=\u0026props=labels)\n- 🚫 📐 *Spatial Operations*: a feature's calculated area, bounding box, etc. will likely be inaccurate\n- 🚫 🗺 *Mapmaking*: the border data is not intended for rendering\n\n\n## Installing\n\n### Use in Node\n\n`npm install @rapideditor/country-coder`\n\n**country-coder** is distributed in CJS and ESM module formats for maxmimum compatibility. ([Read more about Javascript module formats](https://dev.to/iggredible/what-the-heck-are-cjs-amd-umd-and-esm-ikm))\n\n\n```js\nconst countryCoder = require('@rapideditor/country-coder');           // CommonJS import all\nconst iso1A2Code = require('@rapideditor/country-coder').iso1A2Code;  // CommonJS import named\n// or\nimport * as countryCoder from '@rapideditor/country-coder';           // ESM import all\nimport { iso1A2Code } from '@rapideditor/country-coder';              // ESM import named\n```\n\n\n### Use in Browsers\n\nYou can also use **country-coder** directly in a web browser. A good way to do this is to fetch the [\"iife\"](https://esbuild.github.io/api/#format-iife) bundle from the [jsDelivr CDN](https://www.jsdelivr.com/), which can even deliver minified versions.\n\nWhen you load this file in a `\u003cscript\u003e` tag, you'll get a `countryCoder` global to use elsewhere in your scripts:\n```html\n\u003chead\u003e\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/@rapideditor/country-coder@latest/dist/country-coder.iife.min.js\"\u003e\u003c/script\u003e\n\u003c/head\u003e\n…\n\u003cscript\u003e\n  var result = countryCoder.iso1A2Code('Q145');\n\u003c/script\u003e\n```\n\n👉 This project uses modern JavaScript syntax for use in supported node versions and modern browsers.  If you need support for legacy environments like ES5 or Internet Explorer, you'll need to build your own bundle with something like [Babel](https://babeljs.io/docs/en/index.html).\n\n\n## Quick Start\n\nSimply pass in a `[longitude, latitude]` to `iso1A2Code` to get the country code.\n\n```js\niso1A2Code([-4.5, 54.2]);\t // returns 'GB'\n```\n\nTo include non-country territories, pass in `territory` for the `level` option.\n\n```js\niso1A2Code([-4.5, 54.2], { level: 'territory' });  // returns 'IM'\n```\n\nThe same method can convert from other identifiers.\n\n```js\niso1A2Code('Q145');  // returns 'GB'\n```\n\n\u003e [!WARNING]\n\u003e Numeric identifiers are accepted for convenience, but string identifiers are recommended.\n\u003e In JavaScript, leading-zero numeric literals like `021`, `030`, or `053` can be misparsed in non-strict code before `country-coder` receives them.\n\u003e Prefer string values like `'021'`, `'030'`, and `'053'` for ISO numeric-3 and UN M49 identifiers.\n\u003e Numeric identifier support may be deprecated in a future release.\n\nRead the [full API reference](#api-reference) to see everything `country-coder` can do.\n\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions and contribution guidelines.\n\nThis package is kept intentionally minimal. However, if you find a bug or have an interesting idea for an enhancement, feel free to open an [Issue](https://github.com/rapideditor/country-coder/issues) and/or [Pull Request](https://github.com/rapideditor/country-coder/pulls).\n\n\n## API Reference\n\n##### Methods\n* [feature](#feature)(query: Location | string | number, opts?: CodingOptions): RegionFeature?\n* [iso1A2Code](#iso1A2Code)(query: Location | string | number, opts?: CodingOptions): string?\n* [iso1A2Codes](#iso1A2Codes)(query: Location | Bbox): [string]\n* [iso1A3Code](#iso1A3Code)(query: Location | string | number, opts?: CodingOptions): string?\n* [iso1A3Codes](#iso1A3Codes)(query: Location | Bbox): [string]\n* [iso1N3Code](#iso1N3Code)(query: Location | string | number, opts?: CodingOptions): string?\n* [iso1N3Codes](#iso1N3Codes)(query: Location | Bbox): [string]\n* [m49Code](#m49Code)(query: Location | string | number, opts?: CodingOptions): string?\n* [m49Codes](#m49Codes)(query: Location | Bbox): [string]\n* [wikidataQID](#wikidataQID)(query: Location | string | number, opts?: CodingOptions): string?\n* [wikidataQIDs](#wikidataQIDs)(query: Location | Bbox): [string]\n* [emojiFlag](#emojiFlag)(query: Location | string | number, opts?: CodingOptions): string?\n* [emojiFlags](#emojiFlags)(query: Location | Bbox): [string]\n* [ccTLD](#ccTLD)(query: Location | string | number, opts?: CodingOptions): string?\n* [ccTLDs](#ccTLDs)(query: Location | Bbox): [string]\n* [featuresContaining](#featuresContaining)(query: Location | Bbox | string | number, strict: boolean): [RegionFeature]\n* [featuresIn](#featuresIn)(id: string | number, strict: boolean): [RegionFeature]\n* [aggregateFeature](#aggregateFeature)(id: string | number): [RegionFeature]\n* [isIn](#isIn)(query: Location | string | number, bounds: string | number): boolean\n* [isInEuropeanUnion](#isInEuropeanUnion)(query: Location | string | number): boolean\n* [isInUnitedNations](#isInUnitedNations)(query: Location | string | number): boolean\n* [driveSide](#driveSide)(query: Location | string | number): string?\n* [roadSpeedUnit](#roadSpeedUnit)(query: Location | string | number): string?\n* [roadHeightUnit](#roadHeightUnit)(query: Location | string | number): string?\n* [callingCodes](#callingCodes)(query: Location | string | number): [string]\n\n##### Properties\n* [borders](#borders): RegionFeatureCollection - the base GeoJSON containing all features\n\n##### Types\n* [Vec2](#Vec2): [number, number]\n* [Bbox](#Bbox): [number, number, number, number]\n* [PointGeometry](#PointGeometry): a GeoJSON Point geometry object\n* [PointFeature](#PointFeature): a GeoJSON feature object with a Point geometry type\n* [Location](#Location): Vec2 | PointGeometry | PointFeature\n* [CodingOptions](#CodingOptions)\n* [RegionFeature](#RegionFeature)\n* [RegionFeatureProperties](#RegionFeatureProperties)\n* [RegionFeatureCollection](#RegionFeatureCollection)\n\n\u003e [!WARNING]\n\u003e Numeric identifiers are accepted for convenience, but string identifiers are recommended.\n\u003e In JavaScript, leading-zero numeric literals like `021`, `030`, or `053` can be misparsed in non-strict code before `country-coder` receives them.\n\u003e Prefer string values like `'021'`, `'030'`, and `'053'` for ISO numeric-3 and UN M49 identifiers.\n\u003e Numeric identifier support may be deprecated in a future release.\n\n\n## Methods\n\n\u003ca name=\"feature\" href=\"#feature\"\u003e#\u003c/a\u003e \u003cb\u003efeature\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): RegionFeature?\n\nReturns the GeoJSON feature from `borders` for the given location or identifier and options, if found. Note that the `geometry` of the feature may not contain its full bounds (see [aggregateFeature](#aggregateFeature)).\n\n```js\nfeature([-4.5, 54.2]);  // returns United Kingdom feature\nfeature([-4.5, 54.2], { level: 'territory' });  // returns {Isle of Man}\nfeature([0, 90]);       // returns null\nfeature('GB');          // returns {United Kingdom}\nfeature('GBR');         // returns {United Kingdom}\nfeature('826');         // returns {United Kingdom}\nfeature('Q145');        // returns {United Kingdom}\nfeature('🇬🇧');          // returns {United Kingdom}\nfeature('.uk');         // returns {United Kingdom}\nfeature('UK');          // returns {United Kingdom}\nfeature('IM');          // returns {Isle of Man}\nfeature('United Kingdom'); // returns {United Kingdom}\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nfeature(pointGeoJSON);           // returns {United Kingdom}\nfeature(pointGeoJSON.geometry);  // returns {United Kingdom}\n```\n\n\n\u003ca name=\"iso1A2Code\" href=\"#iso1A2Code\"\u003e#\u003c/a\u003e \u003cb\u003eiso1A2Code\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): string?\n\nReturns the ISO 3166-1 alpha-2 code for the given location or identifier and options, if found.\n\n```js\niso1A2Code([-4.5, 54.2]);  // returns 'GB'\niso1A2Code([-4.5, 54.2], { level: 'territory' });  // returns 'IM'\niso1A2Code([0, 90]);       // returns null\niso1A2Code('GBR');         // returns 'GB'\niso1A2Code('826');         // returns 'GB'\niso1A2Code('Q145');        // returns 'GB'\niso1A2Code('🇬🇧');          // returns 'GB'\niso1A2Code('.uk');         // returns 'GB'\niso1A2Code('UK');          // returns 'GB'\niso1A2Code('IMN');         // returns 'IM'\niso1A2Code('United Kingdom'); // returns 'GB'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\niso1A2Code(pointGeoJSON);           // returns 'GB'\niso1A2Code(pointGeoJSON.geometry);  // returns 'GB'\n```\n\n\n\u003ca name=\"iso1A2Codes\" href=\"#iso1A2Codes\"\u003e#\u003c/a\u003e \u003cb\u003eiso1A2Codes\u003c/b\u003e(query: Location | Bbox): [string]\n\nReturns all the ISO 3166-1 alpha-2 codes for the given location or bounding box, if any.\n\n```js\niso1A2Codes([-4.5, 54.2]);  // returns ['IM', 'GB', 'UN']\niso1A2Codes([0, 90]);       // returns []\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\niso1A2Codes(pointGeoJSON);           // returns ['IM', 'GB', 'UN']\niso1A2Codes(pointGeoJSON.geometry);  // returns ['IM', 'GB', 'UN']\n```\n\n\n\u003ca name=\"iso1A3Code\" href=\"#iso1A3Code\"\u003e#\u003c/a\u003e \u003cb\u003eiso1A3Code\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): string?\n\nReturns the ISO 3166-1 alpha-3 code for the given location or identifier and options, if found.\n\n```js\niso1A3Code([-4.5, 54.2]);  // returns 'GBR'\niso1A3Code([-4.5, 54.2], { level: 'territory' });  // returns 'IMN'\niso1A3Code([0, 90]);       // returns null\niso1A3Code('GB');          // returns 'GBR'\niso1A3Code('826');         // returns 'GBR'\niso1A3Code('Q145');        // returns 'GBR'\niso1A3Code('🇬🇧');          // returns 'GBR'\niso1A3Code('.uk');         // returns 'GBR'\niso1A3Code('UK');          // returns 'GBR'\niso1A3Code('IM');          // returns 'IMN'\niso1A3Code('United Kingdom'); // returns 'GBR'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\niso1A3Code(pointGeoJSON);           // returns 'GBR'\niso1A3Code(pointGeoJSON.geometry);  // returns 'GBR'\n```\n\n\n\u003ca name=\"iso1A3Codes\" href=\"#iso1A3Codes\"\u003e#\u003c/a\u003e \u003cb\u003eiso1A3Codes\u003c/b\u003e(query: Location | Bbox): [string]\n\nReturns all the ISO 3166-1 alpha-3 codes for the given location of bounding box, if any.\n\n```js\niso1A3Codes([-4.5, 54.2]);  // returns ['IMN', 'GBR']\niso1A3Codes([0, 90]);       // returns []\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\niso1A3Codes(pointGeoJSON);           // returns ['IMN', 'GBR']\niso1A3Codes(pointGeoJSON.geometry);  // returns ['IMN', 'GBR']\n```\n\n\n\u003ca name=\"iso1N3Code\" href=\"#iso1N3Code\"\u003e#\u003c/a\u003e \u003cb\u003eiso1N3Code\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): string?\n\nReturns the ISO 3166-1 numeric-3 code for the given location or identifier and options, if found. For more comprehensive coverage, see [m49Code](#m49Code).\n\n```js\niso1N3Code([-4.5, 54.2]);  // returns '826'\niso1N3Code([-4.5, 54.2], { level: 'territory' });  // returns '833'\niso1N3Code([0, 90]);       // returns null\niso1N3Code('GB');          // returns '826'\niso1N3Code('GBR');         // returns '826'\niso1N3Code('Q145');        // returns '826'\niso1N3Code('🇬🇧');          // returns '826'\niso1N3Code('.uk');         // returns '826'\niso1N3Code('UK');          // returns '826'\niso1N3Code('IM');          // returns '833'\niso1N3Code('Q15');         // returns null (Africa)\niso1A3Code('United Kingdom'); // returns '826'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\niso1N3Code(pointGeoJSON);           // returns '826'\niso1N3Code(pointGeoJSON.geometry);  // returns '826'\n```\n\n\n\u003ca name=\"iso1N3Codes\" href=\"#iso1N3Codes\"\u003e#\u003c/a\u003e \u003cb\u003eiso1N3Codes\u003c/b\u003e(query: Location | Bbox): [string]\n\nReturns all the ISO 3166-1 numeric-3 codes for the given location or bounding box, if any.\n\n```js\niso1N3Codes([-4.5, 54.2]);  // returns ['833', '826']\niso1N3Codes([0, 90]);       // returns []\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\niso1N3Codes(pointGeoJSON);           // returns ['833', '826']\niso1N3Codes(pointGeoJSON.geometry);  // returns ['833', '826']\n```\n\n\n\u003ca name=\"m49Code\" href=\"#m49Code\"\u003e#\u003c/a\u003e \u003cb\u003em49Code\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): string?\n\nReturns the United Nations M49 code for the given location or identifier and options, if found. These codes are a superset of ISO 3166-1 numeric-3 codes, adding a subdivision (Sark) and transnational regions (e.g. Asia, Central America, Polynesia).\n\n```js\nm49Code([-4.5, 54.2]);  // returns '826'\nm49Code([-4.5, 54.2], { level: 'territory' });  // returns '833'\nm49Code([0, 90]);       // returns null\nm49Code('GB');          // returns '826'\nm49Code('GBR');         // returns '826'\nm49Code('Q145');        // returns '826'\nm49Code('🇬🇧');          // returns '826'\nm49Code('.uk');         // returns '826'\nm49Code('UK');          // returns '826'\nm49Code('IM');          // returns '833'\nm49Code('Q15');         // returns '002' (Africa)\nm49Code('United Kingdom'); // returns '826'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nm49Code(pointGeoJSON);           // returns '826'\nm49Code(pointGeoJSON.geometry);  // returns '826'\n```\n\n\n\u003ca name=\"m49Codes\" href=\"#m49Codes\"\u003e#\u003c/a\u003e \u003cb\u003em49Codes\u003c/b\u003e(query: Location | Bbox): [string]\n\nReturns all the United Nations M49 codes for the given location or bounding box, if any.\n\n```js\nm49Codes([-4.5, 54.2]);  // returns ['833', '826', '154', '150', '001']\nm49Codes([0, 90]);       // returns []\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nm49Codes(pointGeoJSON);           // returns ['833', '826', '154', '150', '001']\nm49Codes(pointGeoJSON.geometry);  // returns ['833', '826', '154', '150', '001']\n```\n\n\n\u003ca name=\"wikidataQID\" href=\"#wikidataQID\"\u003e#\u003c/a\u003e \u003cb\u003ewikidataQID\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): string?\n\nReturns the Wikidata QID for the given location or identifier and options, if found.\n\n```js\nwikidataQID([-4.5, 54.2]);  // returns 'Q145'\nwikidataQID([-4.5, 54.2], { level: 'territory' });  // returns 'Q9676'\nwikidataQID([0, 90]);       // returns null\nwikidataQID('GB');          // returns 'Q145'\nwikidataQID('GBR');         // returns 'Q145'\nwikidataQID('826');         // returns 'Q145'\nwikidataQID('🇬🇧');          // returns 'Q145'\nwikidataQID('.uk');         // returns 'Q145'\nwikidataQID('UK');          // returns 'Q145'\nwikidataQID('IM');          // returns 'Q9676'\nwikidataQID('United Kingdom'); // returns 'Q145'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nwikidataQID(pointGeoJSON);           // returns 'Q145'\nwikidataQID(pointGeoJSON.geometry);  // returns 'Q145'\n```\n\n\n\u003ca name=\"wikidataQIDs\" href=\"#wikidataQIDs\"\u003e#\u003c/a\u003e \u003cb\u003ewikidataQIDs\u003c/b\u003e(query: Location | Bbox): [string]\n\nReturns all the Wikidata QIDs for the given location or bounding box, if any.\n\n```js\nwikidataQIDs([-4.5, 54.2]);  // returns ['Q9676', 'Q185086', 'Q145', 'Q27479', 'Q46', 'Q1065', 'Q2']\nwikidataQIDs([0, 90]);       // returns []\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nwikidataQIDs(pointGeoJSON);           // returns ['Q9676', 'Q185086', 'Q145', 'Q27479', 'Q46', 'Q1065', 'Q2']\nwikidataQIDs(pointGeoJSON.geometry);  // returns ['Q9676', 'Q185086', 'Q145', 'Q27479', 'Q46', 'Q1065', 'Q2']\n```\n\n\n\u003ca name=\"emojiFlag\" href=\"#emojiFlag\"\u003e#\u003c/a\u003e \u003cb\u003eemojiFlag\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): string?\n\nReturns the emoji flag sequence for the given location or identifier and options, if found.\n\n```js\nemojiFlag([-4.5, 54.2]);  // returns '🇬🇧'\nemojiFlag([-4.5, 54.2], { level: 'territory' });  // returns '🇮🇲'\nemojiFlag([0, 90]);       // returns null\nemojiFlag('GB');          // returns '🇬🇧'\nemojiFlag('GBR');         // returns '🇬🇧'\nemojiFlag('826');         // returns '🇬🇧'\nemojiFlag('Q145');        // returns '🇬🇧'\nemojiFlag('UK');          // returns '🇬🇧'\nemojiFlag('IM');          // returns '🇮🇲'\nemojiFlag('United Kingdom'); // returns '🇬🇧'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nemojiFlag(pointGeoJSON);           // returns '🇬🇧'\nemojiFlag(pointGeoJSON.geometry);  // returns '🇬🇧'\n```\n\n\n\u003ca name=\"emojiFlags\" href=\"#emojiFlags\"\u003e#\u003c/a\u003e \u003cb\u003eemojiFlags\u003c/b\u003e(query: Location | Bbox): [string]\n\nReturns all the emoji flag sequences for the given location or bounding box, if any.\n\n```js\nemojiFlags([-4.5, 54.2]);  // returns ['🇮🇲', '🇬🇧', '🇺🇳']\nemojiFlags([0, 90]);       // returns []\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nemojiFlags(pointGeoJSON);           // returns ['🇮🇲', '🇬🇧', '🇺🇳']\nemojiFlags(pointGeoJSON.geometry);  // returns ['🇮🇲', '🇬🇧', '🇺🇳']\n```\n\n\n\u003ca name=\"ccTLD\" href=\"#ccTLD\"\u003e#\u003c/a\u003e \u003cb\u003eccTLD\u003c/b\u003e(query: Location | string | number, opts?: CodingOptions): string?\n\nReturns the country code top-level internet domain for the given location or identifier and options, if found.\n\n```js\nccTLD([-4.5, 54.2]);  // returns '.uk'\nccTLD([-4.5, 54.2], { level: 'territory' });  // returns '.im'\nccTLD([0, 90]);       // returns null\nccTLD('GB');          // returns '.uk'\nccTLD('GBR');         // returns '.uk'\nccTLD('826');         // returns '.uk'\nccTLD('Q145');        // returns '.uk'\nccTLD('UK');          // returns '.uk'\nccTLD('IM');          // returns '.im'\nccTLD('United Kingdom'); // returns '.uk'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nccTLD(pointGeoJSON);           // returns '.uk'\nccTLD(pointGeoJSON.geometry);  // returns '.uk'\n```\n\n\n\u003ca name=\"ccTLDs\" href=\"#ccTLDs\"\u003e#\u003c/a\u003e \u003cb\u003eccTLDs\u003c/b\u003e(query: Location | Bbox): [string]\n\nReturns all the country code top-level internet domains for the given location or bounding box, if any.\n\n```js\nccTLDs([-4.5, 54.2]);  // returns ['.im', '.uk']\nccTLDs([0, 90]);       // returns []\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [-4.5, 54.2] } };\nccTLDs(pointGeoJSON);           // returns ['.im', '.uk']\nccTLDs(pointGeoJSON.geometry);  // returns ['.im', '.uk']\n```\n\n\n\u003ca name=\"featuresContaining\" href=\"#featuresContaining\"\u003e#\u003c/a\u003e \u003cb\u003efeaturesContaining\u003c/b\u003e(query: Location | Bbox | string | number, strict: boolean): [RegionFeature]\n\nReturns all the the features of any type that contain or match the given location, bounding box, or identifier, if any. If `strict` is `true` and `query` is an identifier, then only features that are strictly containing are returned.\n\n```js\nfeaturesContaining([-4.5, 54.2]);  // returns [{Isle of Man}, {Crown Dependencies}, {United Kingdom}, {Northern Europe}, {Europe}, {United Nations}, {World}]\nfeaturesContaining([0, 51.5]);     // returns [{England}, {Countries of the United Kingdom}, {United Kingdom}, {Great Britain}, {Northern Europe}, {Europe}, {United Nations}, {World}]\nfeaturesContaining([6.1, 46.2]);   // returns [{Switzerland}, {Western Europe}, {Europe}, {United Nations}, {World}]\nfeaturesContaining([0, 90]);       // returns []\nfeaturesContaining('GB');          // returns [{United Kingdom}, {United Nations}, {World}]\nfeaturesContaining('GBR');         // returns [{United Kingdom}, {United Nations}, {World}]\nfeaturesContaining('826');         // returns [{United Kingdom}, {United Nations}, {World}]\nfeaturesContaining('Q145');        // returns [{United Kingdom}, {United Nations}, {World}]\nfeaturesContaining('🇬🇧');          // returns [{United Kingdom}, {United Nations}, {World}]\nfeaturesContaining('.uk');         // returns [{United Kingdom}, {United Nations}, {World}]\nfeaturesContaining('UK');          // returns [{United Kingdom}, {United Nations}, {World}]\nfeaturesContaining('154');         // returns [{Northern Europe}, {Europe}, {World}]\nfeaturesContaining('GB', true);    // returns [{United Nations}, {World}]\nfeaturesContaining('154', true);   // returns [{Europe}, {World}]\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [0, -90] } };\nfeaturesContaining(pointGeoJSON);            // returns [{Antarctica}]\nfeaturesContaining(pointGeoJSON.geometry);   // returns [{Antarctica}]\n```\n\n\n\u003ca name=\"featuresIn\" href=\"#featuresIn\"\u003e#\u003c/a\u003e \u003cb\u003efeaturesIn\u003c/b\u003e(id: string | number, strict: boolean): [RegionFeature]\n\nReturns all the the features that match or are contained within the given identifier, if any. If `strict` is `true` then only features that are strictly contained are returned.\n\n```js\nfeaturesIn('CN');          // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]\nfeaturesIn('CHN');         // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]\nfeaturesIn('156');         // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]\nfeaturesIn('Q148');        // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]\nfeaturesIn('🇨🇳');          // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]\nfeaturesIn('.cn');         // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]\nfeaturesIn('China');       // returns [{China}, {Mainland China}, {Hong Kong}, {Macau}]\nfeaturesIn('CN', true);    // returns [{Mainland China}, {Hong Kong}, {Macau}]\n```\n\n\n\u003ca name=\"aggregateFeature\" href=\"#aggregateFeature\"\u003e#\u003c/a\u003e \u003cb\u003eaggregateFeature\u003c/b\u003e(id: string | number): [RegionFeature]\n\nReturns a new feature with the `properties` of the feature matching `id` and the combined `geometry` of it and all its component features. This step is not necessary when only accessing a feature's properties.\n\n```js\naggregateFeature('CN');          // returns Mainland China, Hong Kong, and Macau as one feature\naggregateFeature('CHN');         // returns Mainland China, Hong Kong, and Macau as one feature\naggregateFeature('156');         // returns Mainland China, Hong Kong, and Macau as one feature\naggregateFeature('Q148');        // returns Mainland China, Hong Kong, and Macau as one feature\naggregateFeature('🇨🇳');          // returns Mainland China, Hong Kong, and Macau as one feature\naggregateFeature('.cn');         // returns Mainland China, Hong Kong, and Macau as one feature\naggregateFeature('China');       // returns Mainland China, Hong Kong, and Macau as one feature\n```\n\n\n\u003ca name=\"isIn\" href=\"#isIn\"\u003e#\u003c/a\u003e \u003cb\u003eisIn\u003c/b\u003e(query: Location | string | number, bounds: string | number): boolean\n\nReturns `true` if the feature matching `query` is, or is within, the feature matching `bounds`.\n\n```js\nisIn([0, 51.5], 'GB');    // returns true\nisIn([-4.5, 54.2], 'IM'); // returns true\nisIn([-4.5, 54.2], 'GB'); // returns true\nisIn([-4.5, 54.2], 'CH'); // returns false\nisIn([6.1, 46.2], 'GB');  // returns false\nisIn('IM', 'GB');         // returns true\nisIn('GB', 'IM');         // returns false\nisIn('GB', '150');        // returns true\nisIn('GBR', 150);         // returns true\nisIn('826', 'Q46');       // returns true\nisIn('🇮🇲', '🇬🇧');         // returns true\nisIn('.im', '.uk');       // returns true\nisIn('United Kingdom', 'Europe');     // returns true\nisIn('United Kingdom', 'Africa');     // returns false\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [0, 51.5] } };\nisIn(pointGeoJSON, 'GB');           // returns true\nisIn(pointGeoJSON.geometry, 'GB');  // returns true\n```\n\n\n\u003ca name=\"isInEuropeanUnion\" href=\"#isInEuropeanUnion\"\u003e#\u003c/a\u003e \u003cb\u003eisInEuropeanUnion\u003c/b\u003e(query: Location | string | number): boolean\n\nReturns `true` if the feature with the given location or identifier is found to be part of the European Union. This is a convenience method for `isIn(query, 'EU')`.\n\n```js\nisInEuropeanUnion([13.4, 52.5]); // returns true (Germany)\nisInEuropeanUnion([0, 51.5]);    // returns false (Britain)\nisInEuropeanUnion([-4.5, 54.2]); // returns false (Isle of Man)\nisInEuropeanUnion([6.1, 46.2]);  // returns false (Switzerland)\nisInEuropeanUnion([0, 90]);      // returns false (North Pole)\nisInEuropeanUnion('EU');         // returns true\nisInEuropeanUnion('DE');         // returns true\nisInEuropeanUnion('DEU');        // returns true\nisInEuropeanUnion('276');        // returns true\nisInEuropeanUnion('Q183');       // returns true\nisInEuropeanUnion('🇩🇪');         // returns true\nisInEuropeanUnion('.de');        // returns true\nisInEuropeanUnion('Germany');    // returns true\nisInEuropeanUnion('GB');         // returns false\nisInEuropeanUnion('IM');         // returns false\nisInEuropeanUnion('.im');        // returns false\nisInEuropeanUnion('CH');         // returns false\n\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [13.4, 52.5] } };\nisInEuropeanUnion(pointGeoJSON);           // returns true (Germany)\nisInEuropeanUnion(pointGeoJSON.geometry);  // returns true (Germany)\n```\n\n\n\u003ca name=\"isInUnitedNations\" href=\"#isInUnitedNations\"\u003e#\u003c/a\u003e \u003cb\u003eisInUnitedNations\u003c/b\u003e(query: Location | string | number): boolean\n\nReturns `true` if the feature with the given location or identifier is found to be part of a member state of the United Nations. This is a convenience method for `isIn(query, 'UN')`.\n\n```js\nisInUnitedNations([13.4, 52.5]); // returns true (Germany)\nisInUnitedNations([0, 51.5]);    // returns true (Britain)\nisInUnitedNations([-4.5, 54.2]); // returns true (Isle of Man)\nisInUnitedNations([6.1, 46.2]);  // returns true (Switzerland)\nisInUnitedNations([0, 90]);      // returns false (North Pole)\nisInUnitedNations('EU');         // returns true\nisInUnitedNations('DE');         // returns true\nisInUnitedNations('DEU');        // returns true\nisInUnitedNations('276');        // returns true\nisInUnitedNations('Q183');       // returns true\nisInUnitedNations('🇩🇪');         // returns true\nisInUnitedNations('.de');        // returns true\nisInUnitedNations('Germany');    // returns true\nisInUnitedNations('GB');         // returns true\nisInUnitedNations('IM');         // returns true\nisInUnitedNations('.im');        // returns true\nisInUnitedNations('CH');         // returns true\nisInUnitedNations('XK');         // returns false (Kosovo)\nisInUnitedNations('PS');         // returns false (Palestine)\n\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [13.4, 52.5] } };\nisInUnitedNations(pointGeoJSON);           // returns true (Germany)\nisInUnitedNations(pointGeoJSON.geometry);  // returns true (Germany)\n```\n\n\n\u003ca name=\"driveSide\" href=\"#driveSide\"\u003e#\u003c/a\u003e \u003cb\u003edriveSide\u003c/b\u003e(query: Location | string | number): string?\n\nReturns the side of the road on which traffic drives for the given location or identifier, if found.\n\n```js\ndriveSide([0, 51.5]);    // returns 'left' (Britain)\ndriveSide([6.1, 46.2]);  // returns 'right' (Switzerland)\ndriveSide([0, 90]);      // returns null (North Pole)\ndriveSide('EU');         // returns null\ndriveSide('GB');         // returns 'left'\ndriveSide('GBR');        // returns 'left'\ndriveSide('826');        // returns 'left'\ndriveSide('Q145');       // returns 'left'\ndriveSide('🇬🇧');         // returns 'left'\ndriveSide('.uk');        // returns 'left'\ndriveSide('UK');         // returns 'left'\ndriveSide('United Kingdom'); // returns 'left'\ndriveSide('CH');         // returns 'right'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [0, 51.5] } };\ndriveSide(pointGeoJSON);           // returns 'left' (Britain)\ndriveSide(pointGeoJSON.geometry);  // returns 'left' (Britain)\n```\n\n\n\u003ca name=\"roadSpeedUnit\" href=\"#roadSpeedUnit\"\u003e#\u003c/a\u003e \u003cb\u003eroadSpeedUnit\u003c/b\u003e(query: Location | string | number): string?\n\nReturns the unit of speed used on traffic signs for the given location or identifier, if found.\n\n```js\nroadSpeedUnit([0, 51.5]);    // returns 'mph' (Britain)\nroadSpeedUnit([6.1, 46.2]);  // returns 'km/h' (Switzerland)\nroadSpeedUnit([0, 90]);      // returns null (North Pole)\nroadSpeedUnit('EU');         // returns null\nroadSpeedUnit('GB');         // returns 'mph'\nroadSpeedUnit('GBR');        // returns 'mph'\nroadSpeedUnit('826');        // returns 'mph'\nroadSpeedUnit('Q145');       // returns 'mph'\nroadSpeedUnit('🇬🇧');         // returns 'mph'\nroadSpeedUnit('.uk');        // returns 'mph'\nroadSpeedUnit('UK');         // returns 'mph'\nroadSpeedUnit('United Kingdom'); // returns 'mph'\nroadSpeedUnit('CH');         // returns 'km/h'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [0, 51.5] } };\nroadSpeedUnit(pointGeoJSON);           // returns 'mph' (Britain)\nroadSpeedUnit(pointGeoJSON.geometry);  // returns 'mph' (Britain)\n```\n\n\n\u003ca name=\"roadHeightUnit\" href=\"#roadHeightUnit\"\u003e#\u003c/a\u003e \u003cb\u003eroadHeightUnit\u003c/b\u003e(query: Location | string | number): string?\n\nReturns the unit of length used on vehicle height restriction traffic signs for the given location or identifier, if found.\n\n```js\nroadHeightUnit([0, 51.5]);    // returns 'ft' (Britain)\nroadHeightUnit([6.1, 46.2]);  // returns 'm' (Switzerland)\nroadHeightUnit([0, 90]);      // returns null (North Pole)\nroadHeightUnit('EU');         // returns null\nroadHeightUnit('GB');         // returns 'ft'\nroadHeightUnit('GBR');        // returns 'ft'\nroadHeightUnit('826');        // returns 'ft'\nroadHeightUnit('Q145');       // returns 'ft'\nroadHeightUnit('🇬🇧');         // returns 'ft'\nroadHeightUnit('.uk');        // returns 'ft'\nroadHeightUnit('UK');         // returns 'ft'\nroadHeightUnit('United Kingdom'); // returns 'ft'\nroadHeightUnit('CH');         // returns 'm'\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [0, 51.5] } };\nroadHeightUnit(pointGeoJSON);           // returns 'ft' (Britain)\nroadHeightUnit(pointGeoJSON.geometry);  // returns 'ft' (Britain)\n```\n\n\n\u003ca name=\"callingCodes\" href=\"#callingCodes\"\u003e#\u003c/a\u003e \u003cb\u003ecallingCodes\u003c/b\u003e(query: Location | string | number): [string]\n\nReturns the full international calling code prefix of phone numbers for the given location or identifier, if any. All prefixes have a country code, with some also including an area code separated by a space character. These are commonly formatted with a preceding plus sign (e.g. `+1 242`).\n\n```js\ncallingCodes([0, 51.5]);    // returns ['44'] (Britain)\ncallingCodes([0, 90]);      // returns [] (North Pole)\ncallingCodes('EU');         // returns []\ncallingCodes('GB');         // returns ['44']\ncallingCodes('GBR');        // returns ['44']\ncallingCodes('826');        // returns ['44']\ncallingCodes('Q145');       // returns ['44']\ncallingCodes('🇬🇧');         // returns ['44']\ncallingCodes('.uk');        // returns ['44']\ncallingCodes('UK');         // returns ['44']\ncallingCodes('United Kingdom'); // returns ['44']\ncallingCodes('BS');         // returns ['1 242']\ncallingCodes('JA');         // returns ['1 876', '1 658']\n\nlet pointGeoJSON = { type: 'Feature', geometry: { type: 'Point', coordinates: [0, 51.5] } };\ncallingCodes(pointGeoJSON);           // returns ['44'] (Britain)\ncallingCodes(pointGeoJSON.geometry);  // returns ['44'] (Britain)\n```\n\n\n## Properties\n\n\u003ca name=\"borders\" href=\"#borders\"\u003e#\u003c/a\u003e \u003cb\u003eborders\u003c/b\u003e: RegionFeatureCollection\u003cbr/\u003e\n\nThe base GeoJSON feature collection used for feature lookup. While this property is public, modifying it is not recommended and may have unintended effects.\n\n\n## Types\n\n\u003ca name=\"Vec2\" href=\"#Vec2\"\u003e#\u003c/a\u003e \u003cb\u003eVec2\u003c/b\u003e\n\nAn array of two numbers as `[longitude, latitude]` referenced to the WGS 84 datum.\n\n`[number, number]`\n\n\u003ca name=\"Bbox\" href=\"#Bbox\"\u003e#\u003c/a\u003e \u003cb\u003eBbox\u003c/b\u003e\n\nA bounding box represented as an array of four numbers `[minLongitude, minLatitude, maxLongitude, maxLatitude]` referenced to the WGS 84 datum.\n\n`[number, number, number, number]`\n\n\n\u003ca name=\"PointGeometry\" href=\"#PointGeometry\"\u003e#\u003c/a\u003e \u003cb\u003ePointGeometry\u003c/b\u003e\n\nGeoJSON [Point geometry](https://tools.ietf.org/html/rfc7946#section-3.1.2) as specified by RFC 7946.\n\n\n\u003ca name=\"PointFeature\" href=\"#PointFeature\"\u003e#\u003c/a\u003e \u003cb\u003ePointFeature\u003c/b\u003e\n\nA GeoJSON Feature with [Point geometry](https://tools.ietf.org/html/rfc7946#section-3.1.2) as specified by RFC 7946.\n\n\n\u003ca name=\"Location\" href=\"#Location\"\u003e#\u003c/a\u003e \u003cb\u003eLocation\u003c/b\u003e\n\nA geographic location in one of the supported formats.\n\n`Vec2 | PointGeometry | PointFeature`\n\n\n\u003ca name=\"CodingOptions\" href=\"#CodingOptions\"\u003e#\u003c/a\u003e \u003cb\u003eCodingOptions\u003c/b\u003e\n\nAn object containing options used for geocoding.\n\n- `level`: `string`, for overlapping features, the preferred geographic classification of the one to code. If no feature exists at the specified level, the feature at the next-highest level is coded, if any. For possible values, see the `level` property of [RegionFeatureProperties](#RegionFeatureProperties).\n- `maxLevel`: `string`, the highest-level that a returned feature may have. Must be greater than or equal to `level`.\n\n\n\u003ca name=\"RegionFeature\" href=\"#RegionFeature\"\u003e#\u003c/a\u003e \u003cb\u003eRegionFeature\u003c/b\u003e\n\nA GeoJSON feature representing a codable geographic area.\n\n\n\u003ca name=\"RegionFeatureProperties\" href=\"#RegionFeatureProperties\"\u003e#\u003c/a\u003e \u003cb\u003eRegionFeatureProperties\u003c/b\u003e\n\nAn object containing the attributes of a RegionFeature object.\n\n- `id`: `string`, a unique ID for this feature specific to country-coder\n- `iso1A2`: `string`, ISO 3166-1 alpha-2 code\n- `iso1A3`: `string`, ISO 3166-1 alpha-3 code\n- `iso1N3`: `string`, ISO 3166-1 numeric-3 code\n- `m49`: `string`, UN M49 code\n- `wikidata`: `string`, Wikidata QID\n- `emojiFlag`: `string`, the emoji flag sequence derived from this feature's ISO 3166-1 alpha-2 code\n- `ccTLD`: `string`, the ccTLD (country code top-level internet domain)\n- `nameEn`: `string`, common name in English\n- `aliases`: `[string]`, additional identifiers which can be used to look up this feature\n- `country`: `string`, for features entirely within a country, the id for that country\n- `groups`: `[string]`, the ids other features this feature is entirely within\n- `members`: `[string]`, the ids of other features this feature entirely contains, the inverse of `groups`\n- `level`: `string`, the rough geographic classification of this feature\n    - `world`\n    - `unitedNations`: United Nations\n    - `union`: European Union\n    - `subunion`: Outermost Regions of the EU, Overseas Countries and Territories of the EU\n    - `region`: Africa, Americas, Antarctica, Asia, Europe, Oceania\n    - `subregion`: Sub-Saharan Africa, North America, Micronesia, etc.\n    - `intermediateRegion`: Eastern Africa, South America, Channel Islands, etc.\n    - `sharedLandform`: Great Britain, Macaronesia, Mariana Islands, etc.\n    - `country`: Ethiopia, Brazil, United States, etc.\n    - `subcountryGroup`: British Overseas Territories, Crown Dependencies, etc.\n    - `territory`: Puerto Rico, Gurnsey, Hong Kong, etc.\n    - `subterritory`: Sark, Ascension Island, Diego Garcia, etc.\n- `isoStatus`: `string`, the status of this feature's ISO 3166-1 code(s), if any\n    - `official`: officially-assigned\n    - `excRes`: exceptionally-reserved\n    - `usrAssn`: user-assigned\n- `driveSide`: `string`, the side of the road on which traffic drives within this feature\n    - `right`\n    - `left`\n- `roadSpeedUnit`: `string`, the speed unit used on traffic signs in this feature\n    - `mph`: miles per hour\n    - `km/h`: kilometers per hour\n- `roadHeightUnit`: `string`, the length unit used on vehicle height restriction signs in this feature\n    - `ft`: feet and inches\n    - `m`: meters\n- `callingCodes`: `[string]`, the international calling codes for this feature, sometimes including area codes\n\n\n\u003ca name=\"RegionFeatureCollection\" href=\"#RegionFeatureCollection\"\u003e#\u003c/a\u003e \u003cb\u003eRegionFeatureCollection\u003c/b\u003e\n\nA GeoJSON feature collection containing RegionFeature objects.\n\n\n## License\n\nAvailable under the [ISC License](https://opensource.org/licenses/ISC). See [LICENSE.md](LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapideditor%2Fcountry-coder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frapideditor%2Fcountry-coder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapideditor%2Fcountry-coder/lists"}