Ces villes proviennent du GeoNames Gazetteer.
toutes les villes avec une population > 1 000 ou des sièges de division adm (environ 150 000) [...]
Ainsi, ce fichier est mis à jour mensuellement et de nouvelles villes sont ajoutées à mesure que la population mondiale augmente.
Voir https://www.geonames.org/datasources/ pour la liste des sources de données utilisées par GeoNames .
npm install --save cities.json
Que ce soit sur le nœud ou sur le navigateur (avec webpack
), cela devient aussi simple que ceci :
ES5
const cities = require('cities.json');
ES6
import cities from 'cities.json';
Depuis webpack >= v2.0.0, l'importation de fichiers JSON fonctionnera par défaut.
Cette version Json est un tableau d'objets de la forme suivante :
[
{
"name" : "Lyon" ,
"lat" : "45.74846" ,
"lng" : "4.84671" ,
"country" : "FR" ,
"admin1" : "84" ,
"admin2" : "69"
}
// etc.
]
Ces villes peuvent assez facilement être associées aux pays par code en utilisant l'ensemble de données suivant : https://github.com/annexare/Countries
Les noms et la profondeur de ces divisions (et subdivisions) peuvent varier considérablement d'un pays à l'autre, d'où l'utilisation de ces noms de propriété moins expressifs :
admin1
admin2
Par exemple, le code admin1
d'une ville américaine représenterait l' état :
[
{
"name" : "Boston" ,
"lat" : "42.35843" ,
"lng" : "-71.05977" ,
"country" : "US" ,
"admin1" : "MA" , // Massachusetts
"admin2" : "025"
}
]
Vous pouvez mapper le code admin1
au nom anglais complet via le fichier ./admin1.json. Où le code
est la concaténation du code country
et du code admin1
, par exemple :
US.MA
→ Massachusetts Pour ./admin2.json concaténer country
, le code admin1
et le code admin2
:
US.MA.025
→ Comté de Suffolk Ce travail est sous licence Creative Commons Attribution 3.0.