Skip to content

hebcal/hebcal-geo-sqlite

Repository files navigation

hebcal-geo-sqlite

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).

Installation

$ npm install @hebcal/geo-sqlite
$ ./node_modules/.bin/download-and-make-dbs

Synopsis

import {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();

Classes

GeoDb

Wrapper around sqlite databases

Functions

buildGeonamesSqlite(opts)

Builds geonames.sqlite3 from files downloaded from geonames.org

doSql(logger, db, ...sqls)
doFile(logger, db, infile, tableName, expectedFields, callback)

GeoDb

Wrapper around sqlite databases

Kind: global class

new GeoDb(logger, zipsFilename, geonamesFilename)

Param Type
logger any
zipsFilename string
geonamesFilename string

geoDb.zipCache : Map.<string, Location>

Kind: instance property of GeoDb

geoDb.geonamesCache : Map.<number, Location>

Kind: instance property of GeoDb

geoDb.legacyCities : Map.<string, number>

Kind: instance property of GeoDb

geoDb.countryNames : Map.<string, string>

Kind: instance property of GeoDb

geoDb.close()

Closes database handles

Kind: instance method of GeoDb

geoDb.lookupZip(zip) ⇒ Location

Kind: instance method of GeoDb

Param Type
zip string

geoDb.lookupGeoname(geonameid) ⇒ Location

Kind: instance method of GeoDb

Param Type
geonameid number

geoDb.lookupLegacyCity(cityName) ⇒ Location

Kind: instance method of GeoDb

Param Type
cityName string

geoDb.autoComplete(qraw, latlong) ⇒ Array.<Object>

Generates autocomplete results based on a query string

Kind: instance method of GeoDb

Param Type Default
qraw string
latlong boolean false

geoDb.cacheZips()

Reads entire ZIP database and caches in-memory

Kind: instance method of GeoDb

geoDb.cacheGeonames()

Reads entire geonames database and caches in-memory

Kind: instance method of GeoDb

GeoDb.transliterate(source, [options]) ⇒ string

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

GeoDb.geonameCityDescr(cityName, admin1, countryName) ⇒ string

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'

GeoDb.version()

Returns the version of the GeoDb package

Kind: static method of GeoDb

buildGeonamesSqlite(opts)

Builds geonames.sqlite3 from files downloaded from geonames.org

Kind: global function

Param Type
opts any

doSql(logger, db, ...sqls)

Kind: global function

Param Type
logger pino.Logger
db Database
...sqls string

doFile(logger, db, infile, tableName, expectedFields, callback)

Kind: global function

Param Type
logger pino.Logger
db Database
infile string
tableName string
expectedFields number
callback function

About

Hebcal ES6 interface to GeoNames and USA ZIP code SQLite databases

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •