def main(graph, track, gpx, csv, geo, vbo_file): vbd = VBoxData(vbo_file) print >>sys.stderr, len(vbd.data),"points" if gpx: vbd.write_gpx(gpx) if csv: vbd.write_csv(csv) if geo: vbd.write_geojson(geo) if graph: vbd.plot_graph() if track: vbd.plot_track()
def home(): if request.method == 'POST': file = request.files['file'] if file and allowed_file(file.filename): filename = secure_filename(file.filename) new_name = os.path.join(app.config['UPLOAD_FOLDER'], filename) file.save(new_name) # process uploaded VBO file with open(new_name) as f: vbox_data = VBoxData(f) center_lat = (vbox_data.max_lat + vbox_data.min_lat)/2.0 center_long = (vbox_data.max_long + vbox_data.min_long)/2.0 map_options = { "center": { "lat": center_lat, "lng": center_long}, "zoom": 12 } marker = { "position": {"lat": vbox_data.data[0].lat_deg, "lng": vbox_data.data[0].long_deg}, "title": "Start" } # Make GeoJSON file json_name = new_name.rsplit('.')[0] + ".json" with open(json_name, 'w') as outf: vbox_data.write_geojson(outf) html_filename = new_name.rsplit('.')[0] + ".html" with open(html_filename, 'w') as outf: outf.write( render_template('route.html', vbd=vbox_data, title=filename, json_url = os.path.basename(json_name), api_key=GOOGLE_API_BROWSER_KEY, map_options=map_options, marker=marker) ) return redirect(html_filename) else: routes = [ os.path.basename(r).rsplit('.')[0] for r in glob.glob(os.path.join(UPLOAD_FOLDER, '*.vbo')) ] return render_template('home.html', routes=routes)