@geomelon/data-query
v1.0.0
Published
Loader and query interface for Geomelon per-country data packages (@geomelon/<country>) — filter cities and regions instead of scanning a bare JSON array
Maintainers
Readme
@geomelon/data-query
Loader and query interface for Geomelon per-country data packages (@geomelon/<country>). Every generated country package depends on this and re-exports a ready-made dataset instead of a bare JSON array.
Usage
const spain = require('@geomelon/spain')
spain.cities({ name: 'Barcel' }) // prefix match, checks every translation too
spain.cities({ minPopulation: 1000000 })
spain.cities({ regionId: 'region-1', limit: 10 })
spain.city('Q1492') // by Geomelon id or Wikidata id
spain.regions({ name: 'Cataluña' })
spain.country // country-level fields
spain.meta // generatedAt, recordCount, license, sourceOr build a dataset directly from a raw payload (e.g. downloaded separately, or from a package whose main you didn't use):
import { createGeomelonDataset } from '@geomelon/data-query'
import data from '@geomelon/spain/data.json'
const spain = createGeomelonDataset(data)Filters
cities(filter?):
| field | type | matches |
|---|---|---|
| name | string | case-insensitive prefix match against the primary name and every translation |
| regionId | string | exact match |
| minPopulation / maxPopulation | number | inclusive range |
| language | string | city has a translation in this language |
| settlementType | string | exact match against one of the city's settlement types |
| limit | number | caps the result count |
regions(filter?) supports name and limit.
License
MIT (this package's code). The data shipped inside each @geomelon/<country> package is CC0-1.0 — see that package's own LICENSE.
