Cities.json
:cityscape: Cities of the world in Json, based on GeoNames Gazetteer
Install / Use
/learn @lutangar/Cities.jsonREADME
:cityscape: Cities of the World 
These cities are coming from the GeoNames Gazetteer.
all cities with a population > 1000 or seats of adm div down to PPLA3 (ca 130.000) [...]
Thus, this file is updated monthly and new cities are added as world population rises.
See https://www.geonames.org/datasources/ for the list of data sources used by GeoNames.
Install
npm install --save cities.json
Usage
Node.js
Since Node.js v22 you should import json files with import attributes:
import cities from 'cities.json' with { type: 'json' }
Webpack
import cities from 'cities.json';
Since webpack >= v2.0.0, importing of JSON files will work by default.
Description
This Json version is an array of object of the following shape:
- ISO 3166-1 alpha-2 country code
- name
- Latitude
- Longitude
- Admin code 1: the code of an administrative division (see Administrative divisions)
- Admin code 2: the code of an administrative subdivision (see Administrative divisions)
[
{
"name": "Lyon",
"lat": "45.74846",
"lng": "4.84671",
"country": "FR",
"admin1": "84",
"admin2": "69"
}
]
These cities can pretty easily be matched with countries by code using the following dataset: https://github.com/annexare/Countries
Administrative divisions
Names and depth of these divisions (and subdivisions) may vary greatly between countries, thus the use of these less expressive property names :
admin1codeadmin2code- etc.
For example admin1 code for a US city, would stand for the state :
[
{
"name": "Boston",
"lat": "42.35843",
"lng": "-71.05977",
"country": "US",
"admin1": "MA", // Massachusetts
"admin2": "025"
}
]
You may map the admin1 code to the full English name through the ./admin1.json file.
Where the code is the concatenation of the country code and the admin1 code, for example:
US.MA→ Massachusetts
For ./admin2.json concatenate country, admin1 code and the admin2 code:
US.MA.025→ Suffolk County
Resource
- https://download.geonames.org/export/dump/
Licence
This work is licensed under a Creative Commons Attribution 4.0 International License.
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR

