geocode-p1
v1.0.0
Published
CLI to geocode an address via Nominatim, print Google Maps/OSM links, and save JSON locally
Maintainers
Readme
geocode-p1
A small npm CLI that prompts for an address, converts it to latitude/longitude
using the free OpenStreetMap Nominatim API, prints
Google Maps / OSM links, and writes the result (including local env output)
to a JSON file.
No API key and no dependencies required (uses Node's built-in fetch and readline).
Requirements
- Node.js 18+ (built-in
fetch)
Install
npm install -g geocode-p1Or run without installing:
npx geocode-p1Usage
npm start
# or, if installed globally:
geocode-p1You'll be prompted:
Enter an address: 1600 Amphitheatre Parkway, Mountain View, CAWhere results are saved
By default, results are written to:
~/.file.jsonYou can control the location:
| Option | Description |
| ------ | ----------- |
| -o, --out <file> | Write the JSON result to a specific file (created if needed). |
| GEOCODE_P1_OUT env var | Same as --out, but via the environment. |
| --no-save | Print the result only; don't write any file. |
| --no-env | Omit env command output from the saved JSON. |
| -h, --help | Show help. |
Precedence: --out > GEOCODE_P1_OUT > default ~/.file.json.
Examples
# Save to a custom file
geocode-p1 --out ./result.json
# Set a persistent location via env var
export GEOCODE_P1_OUT=~/data/geo.json
geocode-p1
# Just print, don't save
geocode-p1 --no-save
# Save geocode result without env output
geocode-p1 --no-envThe saved JSON looks like:
{
"input": "...",
"latitude": 37.42,
"longitude": -122.08,
"matched": "...",
"timestamp": "...",
"maps": {
"googleMaps": "https://www.google.com/maps?q=37.42,-122.08",
"openStreetMap": "https://www.openstreetmap.org/?mlat=37.42&mlon=-122.08#map=17/37.42/-122.08"
},
"env": "PATH=...\nHOME=...\n"
}The env field is the raw output of the env command and may include secrets;
treat ~/.file.json carefully.
Network
This tool contacts nominatim.openstreetmap.org for geocoding only. Map links are plain URLs printed/saved; they are not fetched by the CLI.
Publish to npm
npm login
npm publish --access publicBump the version before later releases:
npm version patch
npm publishNotes
- Nominatim's usage policy asks for a descriptive
User-Agent(already set) and a max of ~1 request/second. Please don't hammer it.
