- Suggested destinations among multi-floors in DBH Building sorted by distance based on user's input prefix.
- Displayed shortest routes from user's location to destination (eg. same floor, different floor through elevator etc.) within canvas using Dijkstra (also do research on A*). Eg. Find the nearest exit, nearest restroom from user's current location.
- Implemented modularize IoT based services calculating routes through tracking interaction between user's phone and sensors(beacons/wifi routers) installed in the building and obtaining data from interfaces applied by Tippers.
- Built responsive layout available both for PC and mobile with jQuery, javascript.
- Implemented back-end services with Guice for dependency injection.
- Database with MySQL for mapping information storage.
Routing from source to destination:
In addition, we implemented routing between different layer and its corresponding display.
We get user's statistical indoor location from beacon interface in Tippers: And obtain the latest one among them.
Mark "src/main/webapp/resources" directory as "Resource Root" Create a database named "cs237", and populate data from 'cs237.sql' in 'src/main/webapp/resources/'
return "beacon_placement.json" String service
Common utilization
Read from "DBH 2 floor.txt" to retrieve the neighbor-cost map (TYPE : Map<String, Map<String, Double>>) for routing.
RoomNo-description pairs Object
Calculate the nearest route based on DBH map and start point and destination room No obtained from front-end.
Read from "coordinates.txt" to get roomNo->coordinate map (TYPE : Map<String, Coordinate>) for transferring.
First we got the original single floor map of CS Department Hall (Donald Bren Hall):
And we divided the path into multiple block and define distance between blocks:
In the meantime, we draw the map of single floor using third party software:
RoomNoCoordinatesReaderTest.java : test coordinates module DBHMapReaderTest.java : test DBHmap module RouterServiceTest.java : test routing module
- show start and destination icon in front-end.