import json import time from dbm import DBManager import sqlite3 as db from mapbox import Directions import mapbox_token DBM = DBManager('demo.db') service = Directions( access_token=mapbox_token.MAPBOX_ACCESS_TOKEN) #Mapbox API result = DBM.read_locs() #Get Location List to generate routes b/w them #Builds list of possible destinations and origins in memory. pairs = [] for loc_one in result: for loc_two in result: if (loc_one != loc_two): #Reformat raw db data into Mapbox Points point_one = { 'type': 'Feature', 'properties': { 'name': loc_one[0] }, 'geometry': { 'type': 'Point', 'coordinates': [loc_one[1], loc_one[2]] } } point_two = {
from flask import Flask, render_template, request import json import data_logger # from kafka import Producer #enables streaming from dbm import DBManager app = Flask(__name__) DBM = DBManager('demo.db') #DB manager class w/ connection object init # producer = Producer() @app.route('/') def index(): return render_template('index.html') @app.route('/db/read') #returns location data def db_read(): result = DBM.read_locs() return json.dumps(result) @app.route('/db/routes') #returns route data def db_read_routes(): all_routes = DBM.read_routes() return json.dumps(all_routes) @app.route('/stream/collect', methods=['POST']) #route for AJAX post from Trip.js def stream_collect_data(): if request.method == 'POST': json_data = request.get_json(force=True) data_logger.write_data(json_data) #log all stream data as JSON in data_log.txt producer.stream_out(request.data) #send data to Kafka client return render_template('error.html') #have to return something small to avoid error, this return does nothing