All Projects → radumas → bikeways4everybody

radumas / bikeways4everybody

Licence: MIT license
Crowdsourcing bike routes in Boston. Making pretty maps from it.

Programming Languages

HTML
75241 projects
CSS
56736 projects
PLpgSQL
1095 projects
javascript
184084 projects - #8 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to bikeways4everybody

Cartodb
Location Intelligence & Data Visualization tool
Stars: ✭ 2,537 (+8356.67%)
Mutual labels:  carto, postgis
carto-workshop
CARTO training materials
Stars: ✭ 81 (+170%)
Mutual labels:  carto, postgis
rpostgis
rpostgis: R Interface to a 'PostGIS' Database
Stars: ✭ 60 (+100%)
Mutual labels:  postgis
school-navigator
Navigate the Durham, NC public school system
Stars: ✭ 25 (-16.67%)
Mutual labels:  postgis
nyc-crash-mapper
React Redux web application for viewing, filtering, & comparing trends of automobile collision data published by the NYPD.
Stars: ✭ 15 (-50%)
Mutual labels:  carto
basemaps
A lightweight package for accessing basemaps from open sources in R 🗺️
Stars: ✭ 39 (+30%)
Mutual labels:  carto
kvwmap
Internet GIS Framework for MapServer with PHP
Stars: ✭ 19 (-36.67%)
Mutual labels:  postgis
torpleng
การต่อเพลงไทยที่ยาวที่สุดในประวัติศาสตร์
Stars: ✭ 39 (+30%)
Mutual labels:  crowdsourcing
gismanager
Publish Your GIS Data(Vector Data) to PostGIS and Geoserver
Stars: ✭ 45 (+50%)
Mutual labels:  postgis
java-crud-api
No description or website provided.
Stars: ✭ 24 (-20%)
Mutual labels:  postgis
pgosm
The goal of PgOSM is to make it simpler to consume OpenStreetMap data loaded from PBF file into PostGIS via osm2pgsql.
Stars: ✭ 16 (-46.67%)
Mutual labels:  postgis
timvt
PostGIS based Vector Tile server.
Stars: ✭ 113 (+276.67%)
Mutual labels:  postgis
bety
Web-interface to the Biofuel Ecophysiological Traits and Yields Database (used by PEcAn and TERRA REF)
Stars: ✭ 14 (-53.33%)
Mutual labels:  postgis
cloud-tileserver
Serve mapbox vectortiles via AWS stack
Stars: ✭ 48 (+60%)
Mutual labels:  postgis
fandom-publics
The Chinese edition of The Internet and New Social Formation in China (粉丝公众), authored by Weiyu Zhang, translated by the CNPolitics translation team.
Stars: ✭ 62 (+106.67%)
Mutual labels:  crowdsourcing
youpin-web
YouPin on the web
Stars: ✭ 13 (-56.67%)
Mutual labels:  crowdsourcing
GeoNature-atlas
Application WEB permettant de générer des fiches espèces publiques à partir d'observations faune/flore
Stars: ✭ 40 (+33.33%)
Mutual labels:  postgis
geoflow
R engine to orchestrate and run (meta)data workflows
Stars: ✭ 28 (-6.67%)
Mutual labels:  postgis
qgis-bridge-plugin
GeoCat Bridge is a plugin for QGIS that can be used to publish geospatial (meta)data to the cloud.
Stars: ✭ 24 (-20%)
Mutual labels:  postgis
AlpacaTag
AlpacaTag: An Active Learning-based Crowd Annotation Framework for Sequence Tagging (ACL 2019 Demo)
Stars: ✭ 126 (+320%)
Mutual labels:  crowdsourcing

Bikeways for Everybody

Crowd-sourcing lines on a map to solicit public input on ideal locations for fully protected bike routes as part of the Boston Cyclists' Union's Bikeways for Everybody initiative. See the live site here

How to Fork

Set Up Accounts and Fork Repository

  1. Get a github, a cartodb, and a mapbox account
  1. Fork the repository by clicking on the fork icon at the top right of this page, like the image below. To learn more about forking, click here.

Carto

  1. Create a new Carto dataset. The default dataset comes with the following fields: {cartodb_id, the_geom, description, name}. Add zipcode (string) by creating a new column. Each row represents one submission from the map with the first field a unique id assigned by Carto to each geometry. the_geom is the geographic object. description is the user input description of the shape, and name is the user's name.

  2. In the view for the table, click on the "SQL" tab on the write to execute arbitrary SQL.
    Custom SQL tab

  3. Add an insert_time column by inputting the following code in the SQL pane: ALTER TABLE bikeways ADD COLUMN insert_time timestamp DEFAULT current_timestamp;

  4. Copy and paste the contents of insert_function.sql (located here) into the sql pane. Modify the name of the table to be inserted, if needed, and add any extra columns you may have created.

    This function allows you to send data from the map to the Carto using a publicly accessible URL while limiting what functions the public can perform on the data (for example, modifying or deleting existing data). This function takes the drawn shape as a GeoJSON, the description, and the username. It converts the GeoJSON to a PostGIS geometry object and then inserts a new row in the table with the geometry, and the other two user-input values. Since it isn't easy to view saved functions in cartoDB, I recommend saving the function in a text file.
    If you have multiple tables see below for more information on keeping track of multiple files.

  5. Go to step 2 in After Forking this Repository

If you have multiple tables: you need to create a unique function for each, it's probably a good idea to save each function as a separate file so you can recall what is on your Carto account. Alternatively you can see which functions have been created with the following sql query (source):

SELECT  proname, proargnames, prosrc 
FROM    pg_catalog.pg_namespace n
JOIN    pg_catalog.pg_proc p
ON      p.pronamespace = n.oid
WHERE   n.nspname = 'public' 
AND		p.proowner <> 10

Mapbox

The mapbox.js leaflet.js extension isn't used anymore, so the basemap is no longer hosted by mapbox. If you want to use the old basemap read the instructions further below. For now, this project is using the mapbox directions API, for which you do still need an access token

  1. Login to Mapbox and then click on Studio in the top bar.
  2. Note your Access token in the right bar.

Old basemap instructions

  1. Download emerald_nolabel.tm2z above (click on the name, then click on raw to initiate the download)
  2. Login to Mapbox and then click on Studio in the top bar.
  3. Click on classic in the left bar then Upload Classic style and locate the the file you downloaded in Step 1.
  4. Note the ID for the basemap after the upload is successful, it's in a grey box on the same line as emerald_nolabel and should be something like yourusername.rand0malphanum3r1c

After Forking this Repository

  1. Perform all the steps under the Carto heading, then.
  2. Modify the following variables in userconfig.js, you can edit this after cloning, or you can edit directly in your web-browser by clicking on the userconfig.js filename above and then clicking on the pencil icon in the top right.
    cartoDBusername to your cartodb username
    cartoDBinsertfunction to the name of your insert function, if you changed it
    mapboxAccessToken your access token in Mapbox, see above
  3. Go to http://YOURGITHUBUSERNAME.github.io/bikeways4everybody to see your own map, and start submitting data, you can see the submitted data by going to the data view for that table in your Carto account.
  4. Have a look at the Data Analysis README to learn how to process the data.

Inspirations:

  • Sarah Bindman's app to map bikeroutes (Great for the "snapping of lines to streets"--actually directions from MapBox. Currently with reduced functionality due to restricted APIs).
  • Code for Philly with the Philadelphia Bike coalition developed an app to log people's routes and produced this web-map
  • Mike Foster's work on crowdsourcing neighbourhoods
  • BostonGIS tutorial For clipping osm tiles to a polygon

Layers

  • Basemap clipped to select cities (not sure if can work with Mapbox)
  • Crash data?
  • Existing infrastructure
  • Bikeways for Everybody corridors
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].