N

NotAlone

You might be lonely but NotAlone

The problem NotAlone solves

Sometimes the shortest route is not always the safest. NotAlone helps out by helping people detemine the safety of routes.
- Overlays Google maps with color mapped tiles, from isolated to safe (red to green).
- Anonymous location data collected from people to determine the safety of routes by crowd sourcing
- Helps people determine the safety of routes at night and while they are travelling to new place
- System designed using Flask as backend server, the server has endpoints to recieve data from people and for sending overlay images. It generates the overlay images using the most recent data.
- Map is divided into tiles and each tile has its own score, this score is stored on the server.
- To render the overlay, server generates the overlay images in tiles based on the map zoom level and location. Overlay images are only loaded after the map tile underneath is loaded, loading only the tiles required

Challenges we ran into

  • The first challenge we ran into was mapping latitude and longitude to mercator projection that google maps uses. We overcame this by converting latitude and longitude to UTM (Mercator coordinates), for this we first understood maths behind it from wikipedia and then wrote a function for it.
  • We then ran into our second challenge was mapping the meractor projection to a 2D array that stores a tile's score. We did this by storing tiles at zoom level 20 (google maps goes till zoom 22). The overlay is then generated by a gradient function that returns square tile overlays based on zoom level and coordinates.
  • The third challenge we ran into was the problem of updating neighbouring tiles based the position data of current tile. We did this by considering tiles based on Manhatten Distance (City Block Diastance) and updating further away tile with a penalty to the weights, i.e. The furhter away the tile is the more the penalty

Discussion