Giter Club home page Giter Club logo

cities.json's Introduction

🏙️ Cities of the World Creative Commons License

These cities are coming from the GeoNames Gazetteer.

all cities with a population > 1000 or seats of adm div (ca 150.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

Either on node or the browser (with webpack) it get as simple as this:

ES5

const cities = require('cities.json');

ES6

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:

[
  {
    "name": "Lyon",
    "lat": "45.74846",
    "lng": "4.84671",
    "country": "FR",
    "admin1": "84",
    "admin2": "69"
  }
  // etc.
]

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 :

  • admin1 code
  • admin2 code
  • 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.MAMassachusetts

For ./admin2.json concatenate country, admin1 code and the admin2 code:

  • US.MA.025Suffolk County

Resource

Licence

This work is licensed under a Creative Commons Attribution 3.0 License.

cities.json's People

Contributors

lutangar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cities.json's Issues

Missing cities

Where did you get this data?
Unfortunately it's missing cities, like mine: Guaratinguetá (state: São Paulo, country: BR)

Escape forward slashes

cities.json inclues a lot of string values that have unescaped forward slashes ('/').

According to https://www.json.org/json-en.html , these are the characters than must be escaped; and forward slash ('/') is among them.

Chars to be escaped:
'"'
''
'/'
'b'
'f'
'n'
'r'
't'
'u' hex hex hex hex

A quick search and replace solves the issue but not doing it cause unexpected results.

Add state/region to differentiate cities with similar names

Currently there is no way to differentiate cities with the same name if they belong to the same country besides the lat-lon. Perhaps, since this is in json format, add the state/region to cities with similar names? This way there is no need to add the state/region to all cities.

Publish to npm? :)

First of all I want to give you a BIG thank you for this amazing work.

I was wondering, though, If it would be possible to publish this package to npm? So we can use it on server-side applications. I don't know if that would be the best strategy but I these main strenghts:

  • One could easily update one's service by upgrading the package version
  • Server-side we would not have to contact any remote database thus reducing the latency issues

I think about the npm package countries-list, that is hosted in Github on https://github.com/annexare/Countries

I don't know if there would be any performance issues given the size of the generated file, but I would like to open the discussion to know what you think about.

Node cannot find cities1000.txt

When I execute convert.js I get this error:

 jakob  F:  Programming projects  Weather-App  src  lib  city-data  master  node ./convert.js             
node:events:492
      throw er; // Unhandled 'error' event
      ^

Error: ENOENT: no such file or directory, open 'F:\Programming projects\Weather-App\src\lib\city-data\cities1000.txt'
Emitted 'error' event on Interface instance at:
    at ReadStream.onerror (node:internal/readline/interface:239:10)
    at ReadStream.emit (node:events:514:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'F:\\Programming projects\\Weather-App\\src\\lib\\city-data\\cities1000.txt'
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.