Hebcal ES6 interface to GeoNames and USA ZIP code SQLite databases
This package is designed for the hebcal.com and may not be generally reusable. It requires two separate databases, one made from GeoNames.org data (available via a Creative Commons license) and a USA ZIP code database (commercial license).
$ npm install @hebcal/geo-sqlite
$ ./node_modules/.bin/download-and-make-dbsimport {Location} from '@hebcal/core';
import {GeoDb} from '@hebcal/geo-sqlite';
import pino from 'pino';
const logger = pino();
const db = new GeoDb(logger, 'zips.sqlite3', 'geonames.sqlite3');
const loc1 = db.lookupZip('90210'); // Beverly Hills, California
const loc2 = db.lookupGeoname(293397); // Tel Aviv
const loc3 = db.lookupLegacyCity('IL-Netanya');
db.close();- GeoDb
Wrapper around sqlite databases
- buildGeonamesSqlite(opts)
Builds
geonames.sqlite3from files downloaded from geonames.org- doSql(logger, db, ...sqls)
- doFile(logger, db, infile, tableName, expectedFields, callback)
Wrapper around sqlite databases
Kind: global class
- GeoDb
- new GeoDb(logger, zipsFilename, geonamesFilename)
- instance
- .zipCache :
Map.<string, Location> - .geonamesCache :
Map.<number, Location> - .legacyCities :
Map.<string, number> - .countryNames :
Map.<string, string> - .close()
- .lookupZip(zip) ⇒
Location - .lookupGeoname(geonameid) ⇒
Location - .lookupLegacyCity(cityName) ⇒
Location - .autoComplete(qraw, latlong) ⇒
Array.<Object> - .cacheZips()
- .cacheGeonames()
- .zipCache :
- static
| Param | Type |
|---|---|
| logger | any |
| zipsFilename | string |
| geonamesFilename | string |
Kind: instance property of GeoDb
Kind: instance property of GeoDb
Kind: instance property of GeoDb
Kind: instance property of GeoDb
Closes database handles
Kind: instance method of GeoDb
Kind: instance method of GeoDb
| Param | Type |
|---|---|
| zip | string |
Kind: instance method of GeoDb
| Param | Type |
|---|---|
| geonameid | number |
Kind: instance method of GeoDb
| Param | Type |
|---|---|
| cityName | string |
Generates autocomplete results based on a query string
Kind: instance method of GeoDb
| Param | Type | Default |
|---|---|---|
| qraw | string |
|
| latlong | boolean |
false |
Reads entire ZIP database and caches in-memory
Kind: instance method of GeoDb
Reads entire geonames database and caches in-memory
Kind: instance method of GeoDb
Convenience wrapper of the transliterate function from transliteration npm package.
Transliterate the string source and return the result.
Kind: static method of GeoDb
| Param | Type |
|---|---|
| source | string |
| [options] | any |
Builds a city description from geonameid string components
Kind: static method of GeoDb
| Param | Type | Description |
|---|---|---|
| cityName | string |
e.g. 'Tel Aviv' or 'Chicago' |
| admin1 | string |
e.g. 'England' or 'Massachusetts' |
| countryName | string |
full country name, e.g. 'Israel' or 'United States' |
Returns the version of the GeoDb package
Kind: static method of GeoDb
Builds geonames.sqlite3 from files downloaded from geonames.org
Kind: global function
| Param | Type |
|---|---|
| opts | any |
Kind: global function
| Param | Type |
|---|---|
| logger | pino.Logger |
| db | Database |
| ...sqls | string |
Kind: global function
| Param | Type |
|---|---|
| logger | pino.Logger |
| db | Database |
| infile | string |
| tableName | string |
| expectedFields | number |
| callback | function |