A spatial API for your GitHub-hosted GeoJSON
Python HTML JavaScript CSS Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



A spatial API for your GitHub-hosted GeoJSON.

Read more in a blog post.


GitHub now supports rendering GeoJSON files. This makes it easy to collaborate on geo data. GitSpatial provides a spatial API for GeoJSON hosted at GitHub.

How it Works

  1. Visit http://gitspatial.com
  2. Authorize the site to access your GitHub repos
  3. Sync the repos that have GeoJSON in them
  4. Sync individual GeoJSON files within these repos
  5. We add a post-receive hook to your GitHub repo so we get notified when you might have updated features
  6. Utilize the API to query your features

Search by Bounding Box

Find all parks within a map view:


Search by Point and Radius

Find all parks within 3000 meters of a point:



GitSpatial is a Django app that uses PostGIS as a backend to GeoDjango. So, you might run into trouble getting dependencies installed.

Non-Python dependencies

  • GEOS
  • GDAL
  • Proj

Virtual Environment

Create a virtual environment. I drop the virtual envrionment within the root of the project. The venv directory is in .gitignore.

virtualenv venv

Source to the virtual environment.

source venv/bin/activate

Install dependencies defined in requirements.txt.

pip install -r requirements.txt

Environment Variables

To keep secret keys, passwords and such out of version control, we store them in environment variables. Below are the variables required to run.


Database Stuff

Assuming you have a database already created and credentials are in the DATABASE_URL envrionment variable, we just need to syncdb to get the necessary tables created. Do not create a superuser if prompted.

python manage.py syncdb

Running the App

The django web server (gunicorn) and the celery process are defined in Procfile. Run with Foreman.

foreman start

Static Files

Static file deployment is handled by the collectstatic command. We're using a combination of django-store and boto to automatically collect/push static files to Amazon S3 during deployment.

All static files should be placed in the /static directory if they need to be deployed.

python manage.py collectstatic


Do it with fab

fab test


Do it with fab

fab deploy