node package manager

geohub

GeoJSON extractor for Github repos and gists.

geohub

GeoJSON extractor for Github repos and gists.

Extracts and parses GeoJSON files from Github repos and gists using the Github API.

npm install geohub
geohub = require('geohub')
 
var user = 'chelm'
var repo = 'grunt-geo'
var path = 'forks'
 
// Extract GeoJSON from a specific path in a repository 
geohub.repo({
  user: user,  // username 
  repo: repo,  // repository 
  path: path,  // path to file or directory 
  token: token // github access token 
}, function (errdata) {
  if (err) throw err
  console.log(data)
  // => if path is a directory, data is an array of geojson objects 
  // => if path is a filename (omit .geojson extension), data is a geojson object 
})
 
// Omit the 'path' option to extract all GeoJSON files from a repository 
geohub.repo({
  user: user,  // username 
  repo: repo,  // repository 
  token: token // github access token 
}, function (errdata) {
  if (err) throw err
  console.log(data)
  // => data is an array of geojson objects 
})
 
// You can also extract GeoJSON from a specific branch of a repo 
geohub.repo({
  user: 'koopjs',           // username 
  repo: 'geohub',           // repository 
  branch: 'do-not-delete',  // branch name 
  path: 'portland-parks',   // path to file or directory 
  token: token              // github access token 
}, function (errdata) {
  if (err) throw err
  console.log(data)
  // => data is a geojson object 
})
 
// Check a file's SHA (useful for caching) 
geohub.repoSha({
  user: user,  // username 
  repo: repo,  // repository 
  path: path,  // path to file 
  token: token // github access token 
}, function (errsha) {
  if (err) throw err
  console.log(sha)
  // => SHA string 
})
 
// Extract GeoJSON from a gist 
geohub.gist({
  id: 6021269, // gist ID 
  token: token // github access token 
}, function (errdata) {
  if (err) throw err
  console.log(data)
  // => data is an array of geojson objects 
})

Geohub uses tape for testing. It is recommended to create your own Github access token for use during testing to ensure you will not hit Github API rate limits.

GITHUB_TOKEN=XXXXXX npm test

MIT