Giter VIP home page Giter VIP logo

geodata-checkout's Introduction

GeoData-Checkout

GeoData-Checkout is an open data platform for geospatial and time-enabled data. Data is stored inside MongoDB and made available to users in an interactive timeline/map, time-enabled KML for Google Earth, and GeoJSON.

Step 1: Draw a polygon around your neighborhood ( using Leaflet.js polygon editing tools )

Step 2: Click the "View Web Map" link and you will land on an interactive timeline-map ( powered by Mapbox.js )

Step 3: Download options include KML or GeoJSON. When you open the KML file in Google Earth, it will open a timeline control.

Technology

About MongoDB

MongoDB is a NoSQL database which supports geospatial queries. The drawn polygon is saved as a CustomGeo, and its points are used to make this query:

timepoint.TimePoint.find( {
  ll: {
    "$within": {
      "$polygon": poly
    }
  }
})

Other technologies used

Leaflet.js from Cloudmade, MapBox.js from MapBox, Leaflet.js Pan Control, Node.js

Historic Buildings: Macon & Chicago

The timeline code was repurposed to show a building timeline for Historic Macon.

The Historic Chicago app uses neighborhood-drawing and timeline components to make sense of 400,000+ buildings and build dates from the City of Chicago

Source Code

About Poang

Poang (github) is a Node.js/MongoDB app built using the Express framework. Poang uses Everyauth for local authentication, Mongoose-Auth to connect Everyauth to MongoDB (and Mongoose as the ODM) for account persistence, and Connect-Mongo as a session store. Most of the code in app.js was generated by Express and all of the code in auth.js after the Comment schema is straight from the Mongoose-Auth docs.

For testing, Poang uses the Mocha test framework, should for assertions, Sinon.JS for mocks & stubs, and Zombie.js for lightweight integration testing.

For more details, please see BeyondFog's blog post that walks through the various tests in Poang.

Installation

  1. Do a git clone:

    git clone git://github.com/codeforamerica/geodata-checkout.git

  2. cd into the project directory and then install the necessary node modules:

    npm install -d

  3. start up MongoDB if it's not already running:

    mongod --noprealloc --nojournal

  4. start the node process:

    node app.js

  5. add a geospatial index to the "ll" field in your MongoDB settings

Deploy to Heroku

heroku create APP_NAME
git push heroku master

After you have created a new app on Heroku and pushed the code via git, you will need to use the Heroku Toolbelt from your command line to add the free MongoLab starter addon:

heroku addons:add mongolab:starter

Go to Heroku, click on Apps and then on this app's Addons panel. On the MongoLab admin panel, add a geospatial index to the "ll" field

Uploading data

POST each of your TimePoints to /timeline using a script such as https://gist.github.com/3853444

POST body should include these variables:

  • lat = latitude
  • lng = longitude
  • start = StartMonth
  • end = EndMonth

geodata-checkout's People

Contributors

mapmeld avatar

Watchers

JT5D avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.