Essas cidades vêm do GeoNames Gazetteer.
todas as cidades com população > 1000 ou assentos de adm div (cerca de 150.000) [...]
Assim, este arquivo é atualizado mensalmente e novas cidades são adicionadas à medida que a população mundial aumenta.
Consulte https://www.geonames.org/datasources/ para obter a lista de fontes de dados usadas pelo GeoNames .
npm install --save cities.json
Tanto no nó quanto no navegador (com webpack
) fica tão simples quanto isto:
ES5
const cities = require('cities.json');
ES6
import cities from 'cities.json';
Desde o webpack >= v2.0.0, a importação de arquivos JSON funcionará por padrão.
Esta versão Json é uma matriz de objetos com o seguinte formato:
[
{
"name" : "Lyon" ,
"lat" : "45.74846" ,
"lng" : "4.84671" ,
"country" : "FR" ,
"admin1" : "84" ,
"admin2" : "69"
}
// etc.
]
Essas cidades podem ser facilmente combinadas com países por código usando o seguinte conjunto de dados: https://github.com/annexare/Countries
Os nomes e a profundidade dessas divisões (e subdivisões) podem variar muito entre os países, daí o uso destes nomes de propriedades menos expressivos:
admin1
admin2
Por exemplo, o código admin1
para uma cidade dos EUA representaria o estado :
[
{
"name" : "Boston" ,
"lat" : "42.35843" ,
"lng" : "-71.05977" ,
"country" : "US" ,
"admin1" : "MA" , // Massachusetts
"admin2" : "025"
}
]
Você pode mapear o código admin1
para o nome completo em inglês por meio do arquivo ./admin1.json. Onde o code
é a concatenação do código country
e do código admin1
, por exemplo:
US.MA
→ Massachusetts Para ./admin2.json concatene country
, código admin1
e código admin2
:
US.MA.025
→ Condado de Suffolk Este trabalho está licenciado sob uma licença Creative Commons Atribuição 3.0.