Example #1
0
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)
Example #2
0
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()