Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vzhufk/z1p
Zip Codes Validation and Parse.
https://github.com/vzhufk/z1p
data geo geocode geolocation latitude longitude zip zipcode
Last synced: 2 months ago
JSON representation
Zip Codes Validation and Parse.
- Host: GitHub
- URL: https://github.com/vzhufk/z1p
- Owner: vzhufk
- License: mit
- Created: 2018-10-24T09:18:46.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-01T11:52:24.000Z (about 6 years ago)
- Last Synced: 2024-11-07T00:02:29.050Z (2 months ago)
- Topics: data, geo, geocode, geolocation, latitude, longitude, zip, zipcode
- Language: JavaScript
- Size: 91.9 MB
- Stars: 19
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-sweden - JavaScript
README
## Zip Codes Validation and Parse :mailbox_with_mail:
[![Build Status](https://travis-ci.com/vzhufk/z1p.svg?branch=master)](https://travis-ci.com/vzhufk/z1p)
The module that can be used for search places via zip code and other geolocation properties.
## Usage
Install package:
```shell
npm i z1p
```Then you need to add countries you wish to search in. For example the USA.
```shell
npm i @zip/us
```Then you can use it like this:
```js
const z1p = require("z1p");// Get places by zip code.
z1p(["US"]).raw(v => v.zip_code == "59330");// Same as above
z1p(["us"]).findBy("zip_code", "59330"));// Same as above but memorized
z1p(["Us"], {memorize: true}).findBy("zip_code", "59330"));//Result
/*
[ { accuracy: '1',
community: null,
community_code: null,
country_code: 'US',
latitude: '47.1008',
longitude: '-104.7287',
place: 'Glendive',
province: 'Dawson',
province_code: '021',
state: 'Montana',
state_code: 'MT',
zip_code: '59330' } ]
*/
```## API
### z1p(codes, options)
- `codes` `{Array of Strings}` Country codes to search in. By default equals all available.
- `options` `{Object}`
- `memorize` `{Boolean}` `default: false` this options for memorization at methods### .raw(compare)
- `compare` `{Function}` function to find.
**returns**: {Array of Places}### .findBy(key, value)
- `key` `{String}` key in object strucuture (zip_code, accuracy, etc.)
- `value` `{String}` value to find.**returns**: {Array of Places}
_Note:_ This method could be memorized. Every result will be saved to memory so the only first call will be slow.
Place object looks like this:
```js
{
accuracy: '1', // Accuracy of place
community: 'community', // Community name
community_code: 'community_code', // Community code
country_code: 'country_code', // Country code
latitude: '1', // Latitude
longitude: '-1', // Longitude
place: 'place', // Place
province: 'province', // Province
province_code: '021', // Province code
state: 'state', // State
state_code: 'state_code', // State code
zip_code: '1' // Zip code
}
```**Example:**
```js
{ accuracy: '1',
community: null,
community_code: null,
country_code: 'US',
latitude: '47.1008',
longitude: '-104.7287',
place: 'Glendive',
province: 'Dawson',
province_code: '021',
state: 'Montana',
state_code: 'MT',
zip_code: '59330' }
```## Countries
### [Available countries](https://github.com/vzhufk/z1p/tree/master/assets).
## TODO:
1. Add wrappers to raw.
2. Improve performance.### GeoData provided by **[geonames.org](http://www.geonames.org/)**