Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adieuadieu/japan-train-data
🇯🇵 🚂 A circular object of train data for Japan including translations & station geocoding and a tool to generate it.
https://github.com/adieuadieu/japan-train-data
data eki japan nihon train translations
Last synced: about 2 months ago
JSON representation
🇯🇵 🚂 A circular object of train data for Japan including translations & station geocoding and a tool to generate it.
- Host: GitHub
- URL: https://github.com/adieuadieu/japan-train-data
- Owner: adieuadieu
- License: mit
- Created: 2017-04-26T15:29:04.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-05-17T08:34:41.000Z (over 7 years ago)
- Last Synced: 2024-10-11T00:08:35.283Z (2 months ago)
- Topics: data, eki, japan, nihon, train, translations
- Language: JavaScript
- Homepage:
- Size: 1.75 MB
- Stars: 42
- Watchers: 5
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 🚉 japan-train-data
Choo choo.
A circular object of train data for Japan including translations & station geocoding _and_ a tool to generate it. Access train data by prefecture, by lines, or by stations.
## Install
`yarn add japan-train-data`
## Usage
```js
import { prefectures, lines, stations } from 'japan-train-data'console.log(prefectures.find(({ id }) => id === 13))
/*
{
id: 13,
name: { ja: '東京都', en: 'Tokyo' },
lines: [
{
id: 11301,
name: [Object],
lat: 35.39507962341528,
lng: 139.4302441326313,
zoom: 10,
stations: [Object],
prefecture: [Circular],
},
...
],
}
*/console.log(lines.find(({ id }) => id === 11302))
/*
{
id: 11302,
name: {
ja: 'JR山手線',
en: 'JR Yamanote Line',
},
lat: 35.69302730762992,
lng: 139.73522275686264,
zoom: 12,
stations: [
{
id: 1130201,
name: [Object],
location: [Object],
lines: [Object],
prefecture: [Object],
},
{
id: 1130202,
name: [Object],
location: [Object],
lines: [Object],
prefecture: [Object],
},
...
],
prefecture: {
id: 13,
name: { ja: '東京都', en: 'Tokyo' },
lines: [[Object], [Circular], [Object]],
},
}
*/console.log(stations.find(({ prefecture: { id } }) => id === 13))
/*
{
id: 1130101,
name: { ja: '東京', en: 'Tokyo' },
location: {
lat: 35.681391,
lng: 139.766103,
countryCode: { en: 'JP', ja: 'JP' },
postalCode: {
en: '100-0005',
ja: '100-0005',
},
administrativeArea1: {
en: 'Tōkyō-to',
ja: '東京都',
},
locality1: {
en: 'Chiyoda-ku',
ja: '千代田区',
},
sublocality1: {
en: 'Marunouchi',
ja: '丸の内',
},
sublocality2: {
en: '1 Chome',
ja: '1丁目',
},
sublocality3: { en: '9', ja: '9' },
sublocality4: { en: '1', ja: '1' },
},
lines: [
{ id: 11301, name: [Object] },
{ id: 11302, name: [Object] },
{ id: 11308, name: [Object] },
...
],
prefecture: {
id: 13,
name: { ja: '東京都', en: 'Tokyo' },
lines: [[Object], [Object], [Object]],
},
}
*/
```## Just gimme the data
Sure. [`data/raw-data.json`](https://github.com/adieuadieu/japan-train-data/blob/master/data/raw-data.json).
## Generating the data
First clone the project:
```bash
git clone https://github.com/adieuadieu/japan-train-data.git
```Set up your environment with Google Cloud keys. To generate the data you need API access to Google's Translation and Geocoding APIs.
```bash
echo GCP_PROJECT=your-gcp-project-id-here >> .env
GCP_API_KEY=your-google-maps-api-key-here >> .env
GCP_KEYFILE=./gcp-keyfile.json >> .env
```Then to start generating data:
```bash
yarn generate
```### Known Issues
1. Some of the translations are clearly crap.
1. In many cases, transliteration would be better than translation, but there's no API? Suggestions?### Todo
- [X] npm package
- [ ] unit tests
- [ ] ci integrations