Browse Source

Initial commit

Phyks (Lucas Verney) 3 years ago
commit
43425fdf84

+ 12
- 0
.babelrc View File

@@ -0,0 +1,12 @@
1
+{
2
+  "presets": [
3
+    ["env", {
4
+      "modules": false,
5
+      "targets": {
6
+        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7
+      }
8
+    }],
9
+    "stage-2"
10
+  ],
11
+  "plugins": ["transform-vue-jsx", "transform-runtime"]
12
+}

+ 9
- 0
.editorconfig View File

@@ -0,0 +1,9 @@
1
+root = true
2
+
3
+[*]
4
+charset = utf-8
5
+indent_style = space
6
+indent_size = 4
7
+end_of_line = lf
8
+insert_final_newline = true
9
+trim_trailing_whitespace = true

+ 4
- 0
.eslintignore View File

@@ -0,0 +1,4 @@
1
+/build/
2
+/config/
3
+/dist/
4
+/*.js

+ 52
- 0
.eslintrc.js View File

@@ -0,0 +1,52 @@
1
+// https://eslint.org/docs/user-guide/configuring
2
+
3
+module.exports = {
4
+  root: true,
5
+  parser: 'babel-eslint',
6
+  parserOptions: {
7
+    sourceType: 'module'
8
+  },
9
+  env: {
10
+    browser: true,
11
+  },
12
+  // https://github.com/standard/standard/blob/master/docs/RULES-en.md
13
+  extends: 'airbnb-base',
14
+  // required to lint *.vue files
15
+  plugins: [
16
+    'html'
17
+  ],
18
+  // check if imports actually resolve
19
+  'settings': {
20
+    'import/resolver': {
21
+      'webpack': {
22
+        'config': 'build/webpack.base.conf.js'
23
+      }
24
+    }
25
+  },
26
+  // add your custom rules here
27
+  rules: {
28
+    // allow async-await
29
+    'generator-star-spacing': 'off',
30
+    // allow debugger during development
31
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
32
+    // Use 4 spaces indent
33
+    'indent': ['error', 4],
34
+    'import/prefer-default-export': 'off',
35
+    'no-console': 'off',
36
+    'no-underscore-dangle': 'off',
37
+    // Ignore assignment to state
38
+    'no-param-reassign': [
39
+        "error",
40
+        {
41
+            "props": true,
42
+            "ignorePropertyModificationsFor": ["state"]
43
+        }
44
+    ],
45
+    'no-bitwise': [
46
+        "error",
47
+        {
48
+            "int32Hint": true
49
+        }
50
+    ]
51
+  }
52
+}

+ 17
- 0
.gitignore View File

@@ -0,0 +1,17 @@
1
+.DS_Store
2
+node_modules/
3
+/dist/
4
+npm-debug.log*
5
+yarn-debug.log*
6
+yarn-error.log*
7
+
8
+# Editor directories and files
9
+.idea
10
+.vscode
11
+*.suo
12
+*.ntvs*
13
+*.njsproj
14
+*.sln
15
+*.swp
16
+
17
+package-lock.json

+ 10
- 0
.postcssrc.js View File

@@ -0,0 +1,10 @@
1
+// https://github.com/michael-ciniawsky/postcss-load-config
2
+
3
+module.exports = {
4
+  "plugins": {
5
+    "postcss-import": {},
6
+    "postcss-url": {},
7
+    // to edit target browsers: use "browserslist" field in package.json
8
+    "autoprefixer": {}
9
+  }
10
+}

+ 21
- 0
README.md View File

@@ -0,0 +1,21 @@
1
+# herve2
2
+
3
+> A Vue.js project
4
+
5
+## Build Setup
6
+
7
+``` bash
8
+# install dependencies
9
+npm install
10
+
11
+# serve with hot reload at localhost:8080
12
+npm run dev
13
+
14
+# build for production with minification
15
+npm run build
16
+
17
+# build for production and view the bundle analyzer report
18
+npm run build --report
19
+```
20
+
21
+For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).

+ 45
- 0
app.py View File

@@ -0,0 +1,45 @@
1
+import bottle
2
+
3
+
4
+@bottle.hook('after_request')
5
+def enable_cors():
6
+    """
7
+    Add CORS headers at each request.
8
+    """
9
+    # The str() call is required as we import unicode_literal and WSGI
10
+    # headers list should have plain str type.
11
+    bottle.response.headers[str('Access-Control-Allow-Origin')] = str('*')
12
+    bottle.response.headers[str('Access-Control-Allow-Methods')] = str(
13
+        'PUT, GET, POST, DELETE, OPTIONS, PATCH'
14
+    )
15
+    bottle.response.headers[str('Access-Control-Allow-Headers')] = str(
16
+        'Origin, Accept, Content-Type, X-Requested-With, X-CSRF-Token'
17
+    )
18
+
19
+
20
+@bottle.route("/", ["GET", "OPTIONS"])
21
+def index():
22
+    points = []
23
+    with open("pcroute.txt", "r") as fh:
24
+        for line in fh:
25
+            if not line.startswith("nid:"):
26
+                continue
27
+            line = line.split()
28
+            lat = next(
29
+                x for x in line if x.startswith("lat")
30
+            )
31
+            lng = next(
32
+                x for x in line if x.startswith("lon")
33
+            )
34
+            points.append(
35
+                (lat.replace("lat:", ""), lng.replace("lon:", ""))
36
+            )
37
+    return {
38
+        "data": {
39
+            "track": points
40
+        }
41
+    }
42
+
43
+
44
+if __name__ == "__main__":
45
+    bottle.run(host='localhost', port=8081)

+ 41
- 0
build/build.js View File

@@ -0,0 +1,41 @@
1
+'use strict'
2
+require('./check-versions')()
3
+
4
+process.env.NODE_ENV = 'production'
5
+
6
+const ora = require('ora')
7
+const rm = require('rimraf')
8
+const path = require('path')
9
+const chalk = require('chalk')
10
+const webpack = require('webpack')
11
+const config = require('../config')
12
+const webpackConfig = require('./webpack.prod.conf')
13
+
14
+const spinner = ora('building for production...')
15
+spinner.start()
16
+
17
+rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18
+  if (err) throw err
19
+  webpack(webpackConfig, (err, stats) => {
20
+    spinner.stop()
21
+    if (err) throw err
22
+    process.stdout.write(stats.toString({
23
+      colors: true,
24
+      modules: false,
25
+      children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
26
+      chunks: false,
27
+      chunkModules: false
28
+    }) + '\n\n')
29
+
30
+    if (stats.hasErrors()) {
31
+      console.log(chalk.red('  Build failed with errors.\n'))
32
+      process.exit(1)
33
+    }
34
+
35
+    console.log(chalk.cyan('  Build complete.\n'))
36
+    console.log(chalk.yellow(
37
+      '  Tip: built files are meant to be served over an HTTP server.\n' +
38
+      '  Opening index.html over file:// won\'t work.\n'
39
+    ))
40
+  })
41
+})

+ 54
- 0
build/check-versions.js View File

@@ -0,0 +1,54 @@
1
+'use strict'
2
+const chalk = require('chalk')
3
+const semver = require('semver')
4
+const packageConfig = require('../package.json')
5
+const shell = require('shelljs')
6
+
7
+function exec (cmd) {
8
+  return require('child_process').execSync(cmd).toString().trim()
9
+}
10
+
11
+const versionRequirements = [
12
+  {
13
+    name: 'node',
14
+    currentVersion: semver.clean(process.version),
15
+    versionRequirement: packageConfig.engines.node
16
+  }
17
+]
18
+
19
+if (shell.which('npm')) {
20
+  versionRequirements.push({
21
+    name: 'npm',
22
+    currentVersion: exec('npm --version'),
23
+    versionRequirement: packageConfig.engines.npm
24
+  })
25
+}
26
+
27
+module.exports = function () {
28
+  const warnings = []
29
+
30
+  for (let i = 0; i < versionRequirements.length; i++) {
31
+    const mod = versionRequirements[i]
32
+
33
+    if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
34
+      warnings.push(mod.name + ': ' +
35
+        chalk.red(mod.currentVersion) + ' should be ' +
36
+        chalk.green(mod.versionRequirement)
37
+      )
38
+    }
39
+  }
40
+
41
+  if (warnings.length) {
42
+    console.log('')
43
+    console.log(chalk.yellow('To use this template, you must update following to modules:'))
44
+    console.log()
45
+
46
+    for (let i = 0; i < warnings.length; i++) {
47
+      const warning = warnings[i]
48
+      console.log('  ' + warning)
49
+    }
50
+
51
+    console.log()
52
+    process.exit(1)
53
+  }
54
+}

BIN
build/logo.png View File


+ 101
- 0
build/utils.js View File

@@ -0,0 +1,101 @@
1
+'use strict'
2
+const path = require('path')
3
+const config = require('../config')
4
+const ExtractTextPlugin = require('extract-text-webpack-plugin')
5
+const packageConfig = require('../package.json')
6
+
7
+exports.assetsPath = function (_path) {
8
+  const assetsSubDirectory = process.env.NODE_ENV === 'production'
9
+    ? config.build.assetsSubDirectory
10
+    : config.dev.assetsSubDirectory
11
+
12
+  return path.posix.join(assetsSubDirectory, _path)
13
+}
14
+
15
+exports.cssLoaders = function (options) {
16
+  options = options || {}
17
+
18
+  const cssLoader = {
19
+    loader: 'css-loader',
20
+    options: {
21
+      sourceMap: options.sourceMap
22
+    }
23
+  }
24
+
25
+  const postcssLoader = {
26
+    loader: 'postcss-loader',
27
+    options: {
28
+      sourceMap: options.sourceMap
29
+    }
30
+  }
31
+
32
+  // generate loader string to be used with extract text plugin
33
+  function generateLoaders (loader, loaderOptions) {
34
+    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
35
+
36
+    if (loader) {
37
+      loaders.push({
38
+        loader: loader + '-loader',
39
+        options: Object.assign({}, loaderOptions, {
40
+          sourceMap: options.sourceMap
41
+        })
42
+      })
43
+    }
44
+
45
+    // Extract CSS when that option is specified
46
+    // (which is the case during production build)
47
+    if (options.extract) {
48
+      return ExtractTextPlugin.extract({
49
+        use: loaders,
50
+        fallback: 'vue-style-loader'
51
+      })
52
+    } else {
53
+      return ['vue-style-loader'].concat(loaders)
54
+    }
55
+  }
56
+
57
+  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
58
+  return {
59
+    css: generateLoaders(),
60
+    postcss: generateLoaders(),
61
+    less: generateLoaders('less'),
62
+    sass: generateLoaders('sass', { indentedSyntax: true }),
63
+    scss: generateLoaders('sass'),
64
+    stylus: generateLoaders('stylus'),
65
+    styl: generateLoaders('stylus')
66
+  }
67
+}
68
+
69
+// Generate loaders for standalone style files (outside of .vue)
70
+exports.styleLoaders = function (options) {
71
+  const output = []
72
+  const loaders = exports.cssLoaders(options)
73
+
74
+  for (const extension in loaders) {
75
+    const loader = loaders[extension]
76
+    output.push({
77
+      test: new RegExp('\\.' + extension + '$'),
78
+      use: loader
79
+    })
80
+  }
81
+
82
+  return output
83
+}
84
+
85
+exports.createNotifierCallback = () => {
86
+  const notifier = require('node-notifier')
87
+
88
+  return (severity, errors) => {
89
+    if (severity !== 'error') return
90
+
91
+    const error = errors[0]
92
+    const filename = error.file && error.file.split('!').pop()
93
+
94
+    notifier.notify({
95
+      title: packageConfig.name,
96
+      message: severity + ': ' + error.name,
97
+      subtitle: filename || '',
98
+      icon: path.join(__dirname, 'logo.png')
99
+    })
100
+  }
101
+}

+ 22
- 0
build/vue-loader.conf.js View File

@@ -0,0 +1,22 @@
1
+'use strict'
2
+const utils = require('./utils')
3
+const config = require('../config')
4
+const isProduction = process.env.NODE_ENV === 'production'
5
+const sourceMapEnabled = isProduction
6
+  ? config.build.productionSourceMap
7
+  : config.dev.cssSourceMap
8
+
9
+module.exports = {
10
+  loaders: utils.cssLoaders({
11
+    sourceMap: sourceMapEnabled,
12
+    extract: isProduction
13
+  }),
14
+  cssSourceMap: sourceMapEnabled,
15
+  cacheBusting: config.dev.cacheBusting,
16
+  transformToRequire: {
17
+    video: ['src', 'poster'],
18
+    source: 'src',
19
+    img: 'src',
20
+    image: 'xlink:href'
21
+  }
22
+}

+ 92
- 0
build/webpack.base.conf.js View File

@@ -0,0 +1,92 @@
1
+'use strict'
2
+const path = require('path')
3
+const utils = require('./utils')
4
+const config = require('../config')
5
+const vueLoaderConfig = require('./vue-loader.conf')
6
+
7
+function resolve (dir) {
8
+  return path.join(__dirname, '..', dir)
9
+}
10
+
11
+const createLintingRule = () => ({
12
+  test: /\.(js|vue)$/,
13
+  loader: 'eslint-loader',
14
+  enforce: 'pre',
15
+  include: [resolve('src'), resolve('test')],
16
+  options: {
17
+    formatter: require('eslint-friendly-formatter'),
18
+    emitWarning: !config.dev.showEslintErrorsInOverlay
19
+  }
20
+})
21
+
22
+module.exports = {
23
+  context: path.resolve(__dirname, '../'),
24
+  entry: {
25
+    app: './src/main.js'
26
+  },
27
+  output: {
28
+    path: config.build.assetsRoot,
29
+    filename: '[name].js',
30
+    publicPath: process.env.NODE_ENV === 'production'
31
+      ? config.build.assetsPublicPath
32
+      : config.dev.assetsPublicPath
33
+  },
34
+  resolve: {
35
+    extensions: ['.js', '.vue', '.json'],
36
+    alias: {
37
+      'vue$': 'vue/dist/vue.esm.js',
38
+      '@': resolve('src'),
39
+    }
40
+  },
41
+  module: {
42
+    rules: [
43
+      ...(config.dev.useEslint ? [createLintingRule()] : []),
44
+      {
45
+        test: /\.vue$/,
46
+        loader: 'vue-loader',
47
+        options: vueLoaderConfig
48
+      },
49
+      {
50
+        test: /\.js$/,
51
+        loader: 'babel-loader',
52
+        include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
53
+      },
54
+      {
55
+        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
56
+        loader: 'url-loader',
57
+        options: {
58
+          limit: 10000,
59
+          name: utils.assetsPath('img/[name].[hash:7].[ext]')
60
+        }
61
+      },
62
+      {
63
+        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
64
+        loader: 'url-loader',
65
+        options: {
66
+          limit: 10000,
67
+          name: utils.assetsPath('media/[name].[hash:7].[ext]')
68
+        }
69
+      },
70
+      {
71
+        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
72
+        loader: 'url-loader',
73
+        options: {
74
+          limit: 10000,
75
+          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
76
+        }
77
+      }
78
+    ]
79
+  },
80
+  node: {
81
+    // prevent webpack from injecting useless setImmediate polyfill because Vue
82
+    // source contains it (although only uses it if it's native).
83
+    setImmediate: false,
84
+    // prevent webpack from injecting mocks to Node native modules
85
+    // that does not make sense for the client
86
+    dgram: 'empty',
87
+    fs: 'empty',
88
+    net: 'empty',
89
+    tls: 'empty',
90
+    child_process: 'empty'
91
+  }
92
+}

+ 95
- 0
build/webpack.dev.conf.js View File

@@ -0,0 +1,95 @@
1
+'use strict'
2
+const utils = require('./utils')
3
+const webpack = require('webpack')
4
+const config = require('../config')
5
+const merge = require('webpack-merge')
6
+const path = require('path')
7
+const baseWebpackConfig = require('./webpack.base.conf')
8
+const CopyWebpackPlugin = require('copy-webpack-plugin')
9
+const HtmlWebpackPlugin = require('html-webpack-plugin')
10
+const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
11
+const portfinder = require('portfinder')
12
+
13
+const HOST = process.env.HOST
14
+const PORT = process.env.PORT && Number(process.env.PORT)
15
+
16
+const devWebpackConfig = merge(baseWebpackConfig, {
17
+  module: {
18
+    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
19
+  },
20
+  // cheap-module-eval-source-map is faster for development
21
+  devtool: config.dev.devtool,
22
+
23
+  // these devServer options should be customized in /config/index.js
24
+  devServer: {
25
+    clientLogLevel: 'warning',
26
+    historyApiFallback: {
27
+      rewrites: [
28
+        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
29
+      ],
30
+    },
31
+    hot: true,
32
+    contentBase: false, // since we use CopyWebpackPlugin.
33
+    compress: true,
34
+    host: HOST || config.dev.host,
35
+    port: PORT || config.dev.port,
36
+    open: config.dev.autoOpenBrowser,
37
+    overlay: config.dev.errorOverlay
38
+      ? { warnings: false, errors: true }
39
+      : false,
40
+    publicPath: config.dev.assetsPublicPath,
41
+    proxy: config.dev.proxyTable,
42
+    quiet: true, // necessary for FriendlyErrorsPlugin
43
+    watchOptions: {
44
+      poll: config.dev.poll,
45
+    }
46
+  },
47
+  plugins: [
48
+    new webpack.DefinePlugin({
49
+      'process.env': require('../config/dev.env')
50
+    }),
51
+    new webpack.HotModuleReplacementPlugin(),
52
+    new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
53
+    new webpack.NoEmitOnErrorsPlugin(),
54
+    // https://github.com/ampedandwired/html-webpack-plugin
55
+    new HtmlWebpackPlugin({
56
+      filename: 'index.html',
57
+      template: 'index.html',
58
+      inject: true
59
+    }),
60
+    // copy custom static assets
61
+    new CopyWebpackPlugin([
62
+      {
63
+        from: path.resolve(__dirname, '../static'),
64
+        to: config.dev.assetsSubDirectory,
65
+        ignore: ['.*']
66
+      }
67
+    ])
68
+  ]
69
+})
70
+
71
+module.exports = new Promise((resolve, reject) => {
72
+  portfinder.basePort = process.env.PORT || config.dev.port
73
+  portfinder.getPort((err, port) => {
74
+    if (err) {
75
+      reject(err)
76
+    } else {
77
+      // publish the new Port, necessary for e2e tests
78
+      process.env.PORT = port
79
+      // add port to devServer config
80
+      devWebpackConfig.devServer.port = port
81
+
82
+      // Add FriendlyErrorsPlugin
83
+      devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
84
+        compilationSuccessInfo: {
85
+          messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
86
+        },
87
+        onErrors: config.dev.notifyOnErrors
88
+        ? utils.createNotifierCallback()
89
+        : undefined
90
+      }))
91
+
92
+      resolve(devWebpackConfig)
93
+    }
94
+  })
95
+})

+ 145
- 0
build/webpack.prod.conf.js View File

@@ -0,0 +1,145 @@
1
+'use strict'
2
+const path = require('path')
3
+const utils = require('./utils')
4
+const webpack = require('webpack')
5
+const config = require('../config')
6
+const merge = require('webpack-merge')
7
+const baseWebpackConfig = require('./webpack.base.conf')
8
+const CopyWebpackPlugin = require('copy-webpack-plugin')
9
+const HtmlWebpackPlugin = require('html-webpack-plugin')
10
+const ExtractTextPlugin = require('extract-text-webpack-plugin')
11
+const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
12
+const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
13
+
14
+const env = require('../config/prod.env')
15
+
16
+const webpackConfig = merge(baseWebpackConfig, {
17
+  module: {
18
+    rules: utils.styleLoaders({
19
+      sourceMap: config.build.productionSourceMap,
20
+      extract: true,
21
+      usePostCSS: true
22
+    })
23
+  },
24
+  devtool: config.build.productionSourceMap ? config.build.devtool : false,
25
+  output: {
26
+    path: config.build.assetsRoot,
27
+    filename: utils.assetsPath('js/[name].[chunkhash].js'),
28
+    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
29
+  },
30
+  plugins: [
31
+    // http://vuejs.github.io/vue-loader/en/workflow/production.html
32
+    new webpack.DefinePlugin({
33
+      'process.env': env
34
+    }),
35
+    new UglifyJsPlugin({
36
+      uglifyOptions: {
37
+        compress: {
38
+          warnings: false
39
+        }
40
+      },
41
+      sourceMap: config.build.productionSourceMap,
42
+      parallel: true
43
+    }),
44
+    // extract css into its own file
45
+    new ExtractTextPlugin({
46
+      filename: utils.assetsPath('css/[name].[contenthash].css'),
47
+      // Setting the following option to `false` will not extract CSS from codesplit chunks.
48
+      // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
49
+      // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, 
50
+      // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
51
+      allChunks: true,
52
+    }),
53
+    // Compress extracted CSS. We are using this plugin so that possible
54
+    // duplicated CSS from different components can be deduped.
55
+    new OptimizeCSSPlugin({
56
+      cssProcessorOptions: config.build.productionSourceMap
57
+        ? { safe: true, map: { inline: false } }
58
+        : { safe: true }
59
+    }),
60
+    // generate dist index.html with correct asset hash for caching.
61
+    // you can customize output by editing /index.html
62
+    // see https://github.com/ampedandwired/html-webpack-plugin
63
+    new HtmlWebpackPlugin({
64
+      filename: config.build.index,
65
+      template: 'index.html',
66
+      inject: true,
67
+      minify: {
68
+        removeComments: true,
69
+        collapseWhitespace: true,
70
+        removeAttributeQuotes: true
71
+        // more options:
72
+        // https://github.com/kangax/html-minifier#options-quick-reference
73
+      },
74
+      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
75
+      chunksSortMode: 'dependency'
76
+    }),
77
+    // keep module.id stable when vendor modules does not change
78
+    new webpack.HashedModuleIdsPlugin(),
79
+    // enable scope hoisting
80
+    new webpack.optimize.ModuleConcatenationPlugin(),
81
+    // split vendor js into its own file
82
+    new webpack.optimize.CommonsChunkPlugin({
83
+      name: 'vendor',
84
+      minChunks (module) {
85
+        // any required modules inside node_modules are extracted to vendor
86
+        return (
87
+          module.resource &&
88
+          /\.js$/.test(module.resource) &&
89
+          module.resource.indexOf(
90
+            path.join(__dirname, '../node_modules')
91
+          ) === 0
92
+        )
93
+      }
94
+    }),
95
+    // extract webpack runtime and module manifest to its own file in order to
96
+    // prevent vendor hash from being updated whenever app bundle is updated
97
+    new webpack.optimize.CommonsChunkPlugin({
98
+      name: 'manifest',
99
+      minChunks: Infinity
100
+    }),
101
+    // This instance extracts shared chunks from code splitted chunks and bundles them
102
+    // in a separate chunk, similar to the vendor chunk
103
+    // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
104
+    new webpack.optimize.CommonsChunkPlugin({
105
+      name: 'app',
106
+      async: 'vendor-async',
107
+      children: true,
108
+      minChunks: 3
109
+    }),
110
+
111
+    // copy custom static assets
112
+    new CopyWebpackPlugin([
113
+      {
114
+        from: path.resolve(__dirname, '../static'),
115
+        to: config.build.assetsSubDirectory,
116
+        ignore: ['.*']
117
+      }
118
+    ])
119
+  ]
120
+})
121
+
122
+if (config.build.productionGzip) {
123
+  const CompressionWebpackPlugin = require('compression-webpack-plugin')
124
+
125
+  webpackConfig.plugins.push(
126
+    new CompressionWebpackPlugin({
127
+      asset: '[path].gz[query]',
128
+      algorithm: 'gzip',
129
+      test: new RegExp(
130
+        '\\.(' +
131
+        config.build.productionGzipExtensions.join('|') +
132
+        ')$'
133
+      ),
134
+      threshold: 10240,
135
+      minRatio: 0.8
136
+    })
137
+  )
138
+}
139
+
140
+if (config.build.bundleAnalyzerReport) {
141
+  const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
142
+  webpackConfig.plugins.push(new BundleAnalyzerPlugin())
143
+}
144
+
145
+module.exports = webpackConfig

+ 7
- 0
config/dev.env.js View File

@@ -0,0 +1,7 @@
1
+'use strict'
2
+const merge = require('webpack-merge')
3
+const prodEnv = require('./prod.env')
4
+
5
+module.exports = merge(prodEnv, {
6
+  NODE_ENV: '"development"'
7
+})

+ 76
- 0
config/index.js View File

@@ -0,0 +1,76 @@
1
+'use strict'
2
+// Template version: 1.2.8
3
+// see http://vuejs-templates.github.io/webpack for documentation.
4
+
5
+const path = require('path')
6
+
7
+module.exports = {
8
+  dev: {
9
+
10
+    // Paths
11
+    assetsSubDirectory: 'static',
12
+    assetsPublicPath: '/',
13
+    proxyTable: {},
14
+
15
+    // Various Dev Server settings
16
+    host: 'localhost', // can be overwritten by process.env.HOST
17
+    port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
18
+    autoOpenBrowser: false,
19
+    errorOverlay: true,
20
+    notifyOnErrors: true,
21
+    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
22
+
23
+    // Use Eslint Loader?
24
+    // If true, your code will be linted during bundling and
25
+    // linting errors and warnings will be shown in the console.
26
+    useEslint: true,
27
+    // If true, eslint errors and warnings will also be shown in the error overlay
28
+    // in the browser.
29
+    showEslintErrorsInOverlay: false,
30
+
31
+    /**
32
+     * Source Maps
33
+     */
34
+
35
+    // https://webpack.js.org/configuration/devtool/#development
36
+    devtool: 'cheap-module-eval-source-map',
37
+
38
+    // If you have problems debugging vue-files in devtools,
39
+    // set this to false - it *may* help
40
+    // https://vue-loader.vuejs.org/en/options.html#cachebusting
41
+    cacheBusting: true,
42
+
43
+    cssSourceMap: true,
44
+  },
45
+
46
+  build: {
47
+    // Template for index.html
48
+    index: path.resolve(__dirname, '../dist/index.html'),
49
+
50
+    // Paths
51
+    assetsRoot: path.resolve(__dirname, '../dist'),
52
+    assetsSubDirectory: 'static',
53
+    assetsPublicPath: '/',
54
+
55
+    /**
56
+     * Source Maps
57
+     */
58
+
59
+    productionSourceMap: true,
60
+    // https://webpack.js.org/configuration/devtool/#production
61
+    devtool: '#source-map',
62
+
63
+    // Gzip off by default as many popular static hosts such as
64
+    // Surge or Netlify already gzip all static assets for you.
65
+    // Before setting to `true`, make sure to:
66
+    // npm install --save-dev compression-webpack-plugin
67
+    productionGzip: false,
68
+    productionGzipExtensions: ['js', 'css'],
69
+
70
+    // Run the build command with an extra argument to
71
+    // View the bundle analyzer report after build finishes:
72
+    // `npm run build --report`
73
+    // Set to `true` or `false` to always turn it on or off
74
+    bundleAnalyzerReport: process.env.npm_config_report
75
+  }
76
+}

+ 4
- 0
config/prod.env.js View File

@@ -0,0 +1,4 @@
1
+'use strict'
2
+module.exports = {
3
+  NODE_ENV: '"production"'
4
+}

+ 13
- 0
index.html View File

@@ -0,0 +1,13 @@
1
+<!DOCTYPE html>
2
+<html>
3
+  <head>
4
+    <meta charset="utf-8">
5
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
6
+    <title>herve2</title>
7
+    <link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons' rel="stylesheet">
8
+  </head>
9
+  <body>
10
+    <div id="app"></div>
11
+    <!-- built files will be auto injected -->
12
+  </body>
13
+</html>

+ 76
- 0
package.json View File

@@ -0,0 +1,76 @@
1
+{
2
+  "name": "herve2",
3
+  "version": "0.17.6",
4
+  "description": "A Vue.js project",
5
+  "author": "Phyks (Lucas Verney) <phyks@phyks.me>",
6
+  "private": true,
7
+  "scripts": {
8
+    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9
+    "start": "npm run dev",
10
+    "lint": "eslint --ext .js,.vue src",
11
+    "build": "node build/build.js"
12
+  },
13
+  "dependencies": {
14
+    "es6-promise": "^4.2.2",
15
+    "isomorphic-fetch": "^2.2.1",
16
+    "leaflet": "^1.3.1",
17
+    "vue": "^2.5.2",
18
+    "vue-router": "^3.0.1",
19
+    "vue2-leaflet": "0.0.58",
20
+    "vuetify": "^0.17.6"
21
+  },
22
+  "devDependencies": {
23
+    "autoprefixer": "^7.1.2",
24
+    "babel-core": "^6.22.1",
25
+    "babel-eslint": "^7.1.1",
26
+    "babel-helper-vue-jsx-merge-props": "^2.0.3",
27
+    "babel-loader": "^7.1.1",
28
+    "babel-plugin-syntax-jsx": "^6.18.0",
29
+    "babel-plugin-transform-runtime": "^6.22.0",
30
+    "babel-plugin-transform-vue-jsx": "^3.5.0",
31
+    "babel-preset-env": "^1.3.2",
32
+    "babel-preset-stage-2": "^6.22.0",
33
+    "chalk": "^2.0.1",
34
+    "copy-webpack-plugin": "^4.0.1",
35
+    "css-loader": "^0.28.0",
36
+    "eslint": "^3.19.0",
37
+    "eslint-config-airbnb-base": "^11.3.0",
38
+    "eslint-friendly-formatter": "^3.0.0",
39
+    "eslint-import-resolver-webpack": "^0.8.3",
40
+    "eslint-loader": "^1.7.1",
41
+    "eslint-plugin-html": "^3.0.0",
42
+    "eslint-plugin-import": "^2.7.0",
43
+    "extract-text-webpack-plugin": "^3.0.0",
44
+    "file-loader": "^1.1.4",
45
+    "friendly-errors-webpack-plugin": "^1.6.1",
46
+    "html-webpack-plugin": "^2.30.1",
47
+    "node-notifier": "^5.1.2",
48
+    "optimize-css-assets-webpack-plugin": "^3.2.0",
49
+    "ora": "^1.2.0",
50
+    "portfinder": "^1.0.13",
51
+    "postcss-import": "^11.0.0",
52
+    "postcss-loader": "^2.0.8",
53
+    "postcss-url": "^7.2.1",
54
+    "rimraf": "^2.6.0",
55
+    "semver": "^5.3.0",
56
+    "shelljs": "^0.7.6",
57
+    "uglifyjs-webpack-plugin": "^1.1.1",
58
+    "url-loader": "^0.5.8",
59
+    "vue-loader": "^13.3.0",
60
+    "vue-style-loader": "^3.0.1",
61
+    "vue-template-compiler": "^2.5.2",
62
+    "webpack": "^3.6.0",
63
+    "webpack-bundle-analyzer": "^2.9.0",
64
+    "webpack-dev-server": "^2.9.1",
65
+    "webpack-merge": "^4.1.0"
66
+  },
67
+  "engines": {
68
+    "node": ">= 6.0.0",
69
+    "npm": ">= 3.0.0"
70
+  },
71
+  "browserslist": [
72
+    "> 1%",
73
+    "last 2 versions",
74
+    "not ie <= 8"
75
+  ]
76
+}

+ 232
- 0
pcroute.txt View File

@@ -0,0 +1,232 @@
1
+begin track 0
2
+nid:2250938334	lon:2.319883	lat:48.818783	elevation:78.710	velocity:0.000	distance:0.000	energy:0.000	time:0.000	power:0.000	walk:no	
3
+nid:2042327599	lon:2.319935	lat:48.818873	elevation:79.065	velocity:0.000	distance:10.765	energy:744.885	time:5.321	power:140.000	walk:yes	
4
+nid:2232200886	lon:2.319949	lat:48.818899	elevation:79.173	velocity:0.000	distance:13.821	energy:964.231	time:6.887	power:140.000	walk:yes	
5
+nid:2040281456	lon:2.319865	lat:48.818919	elevation:78.903	velocity:3.274	distance:20.377	energy:1334.220	time:10.892	power:92.397	walk:no	
6
+nid:1158891428	lon:2.319893	lat:48.818963	elevation:79.090	velocity:3.195	distance:25.668	energy:1571.123	time:12.527	power:144.826	walk:no	
7
+nid:4566459579	lon:2.320014	lat:48.819160	elevation:79.968	velocity:2.890	distance:49.303	energy:2691.822	time:20.296	power:144.260	walk:no	
8
+nid:39859737	lon:2.320094	lat:48.819293	elevation:79.653	velocity:4.482	distance:65.215	energy:3196.823	time:24.613	power:116.971	walk:no	
9
+nid:447986075	lon:2.320624	lat:48.820153	elevation:78.778	velocity:6.846	distance:168.438	energy:5474.275	time:42.839	power:124.958	walk:no	
10
+nid:1039175819	lon:2.320987	lat:48.820723	elevation:73.115	velocity:11.049	distance:237.410	energy:5474.275	time:50.548	power:0.000	walk:no	
11
+nid:21389560	lon:2.321056	lat:48.820803	elevation:72.300	velocity:11.441	distance:247.628	energy:5474.275	time:51.457	power:0.000	walk:no	
12
+nid:5298929658	lon:2.321103	lat:48.820846	elevation:71.931	velocity:11.570	distance:253.530	energy:5474.275	time:51.970	power:0.000	walk:no	
13
+nid:1039175822	lon:2.321129	lat:48.820869	elevation:71.799	velocity:11.579	distance:256.784	energy:5474.275	time:52.251	power:0.000	walk:no	
14
+nid:353694929	lon:2.321288	lat:48.821025	elevation:70.978	velocity:11.614	distance:277.595	energy:5474.275	time:54.045	power:0.000	walk:no	
15
+nid:4584812494	lon:2.321306	lat:48.821044	elevation:70.877	velocity:11.616	distance:280.199	energy:5474.275	time:54.270	power:0.000	walk:no	
16
+nid:5298929655	lon:2.321335	lat:48.821075	elevation:70.725	velocity:11.618	distance:284.209	energy:5474.275	time:54.615	power:0.000	walk:no	
17
+nid:128064623	lon:2.321535	lat:48.821278	elevation:69.784	velocity:11.563	distance:311.060	energy:5474.275	time:56.931	power:0.000	walk:no	
18
+nid:2400840542	lon:2.321570	lat:48.821319	elevation:69.603	velocity:11.550	distance:316.334	energy:5474.275	time:57.388	power:0.000	walk:no	
19
+nid:930283214	lon:2.322479	lat:48.822354	elevation:73.817	velocity:5.672	distance:449.335	energy:8256.118	time:72.833	power:180.108	walk:no	
20
+nid:2043740335	lon:2.322588	lat:48.822537	elevation:75.171	velocity:3.710	distance:471.211	energy:9026.459	time:77.496	power:165.195	walk:no	
21
+nid:21389564	lon:2.322660	lat:48.822655	elevation:75.233	velocity:4.228	distance:485.400	energy:9502.851	time:81.071	power:133.261	walk:no	
22
+nid:1037154598	lon:2.322705	lat:48.822754	elevation:75.262	velocity:4.559	distance:496.844	energy:9852.201	time:83.676	power:134.123	walk:no	
23
+nid:4584806419	lon:2.323054	lat:48.823413	elevation:75.770	velocity:5.351	distance:574.471	energy:11994.258	time:99.342	power:136.731	walk:no	
24
+nid:2501585184	lon:2.323143	lat:48.823580	elevation:75.560	velocity:5.919	distance:594.207	energy:12445.730	time:102.845	power:128.906	walk:no	
25
+nid:683068250	lon:2.323162	lat:48.823628	elevation:75.467	velocity:6.100	distance:599.724	energy:12562.920	time:103.763	power:127.652	walk:no	
26
+nid:34909804	lon:2.323176	lat:48.823663	elevation:75.397	velocity:6.227	distance:603.731	energy:12645.275	time:104.413	power:126.669	walk:no	
27
+nid:34910249	lon:2.323216	lat:48.823754	elevation:75.205	velocity:6.538	distance:614.195	energy:12851.589	time:106.052	power:125.843	walk:no	
28
+nid:442193	lon:2.323235	lat:48.823808	elevation:75.074	velocity:6.729	distance:620.375	energy:12968.382	time:106.984	power:125.356	walk:no	
29
+nid:2501585192	lon:2.323278	lat:48.823887	elevation:74.897	velocity:6.962	distance:629.714	energy:13141.067	time:108.348	power:126.581	walk:no	
30
+nid:5045199509	lon:2.323293	lat:48.823914	elevation:74.832	velocity:7.043	distance:632.915	energy:13199.249	time:108.805	power:127.306	walk:no	
31
+nid:141607833	lon:2.323488	lat:48.824274	elevation:74.639	velocity:7.225	distance:675.472	energy:14027.297	time:114.771	power:138.807	walk:no	
32
+nid:24923831	lon:2.323572	lat:48.824440	elevation:75.087	velocity:6.659	distance:694.866	energy:14475.231	time:117.564	power:160.329	walk:no	
33
+nid:2788961875	lon:2.323756	lat:48.824800	elevation:75.368	velocity:6.420	distance:737.118	energy:15415.271	time:124.026	power:145.489	walk:no	
34
+nid:24923830	lon:2.323793	lat:48.824873	elevation:75.308	velocity:6.534	distance:745.695	energy:15594.703	time:125.350	power:135.488	walk:no	
35
+nid:2682587061	lon:2.323926	lat:48.825118	elevation:74.726	velocity:7.275	distance:774.593	energy:16114.515	time:129.536	power:124.193	walk:no	
36
+nid:2682587065	lon:2.324057	lat:48.825358	elevation:73.967	velocity:8.011	distance:802.984	energy:16560.822	time:133.250	power:120.140	walk:no	
37
+nid:568451652	lon:2.324999	lat:48.826868	elevation:75.034	velocity:6.423	distance:984.497	energy:20348.748	time:158.402	power:150.605	walk:no	
38
+nid:1579623653	lon:2.324995	lat:48.826967	elevation:74.554	velocity:7.062	distance:995.564	energy:20522.885	time:160.043	power:106.093	walk:no	
39
+nid:277556543	lon:2.325154	lat:48.827068	elevation:73.794	velocity:7.893	distance:1011.707	energy:20743.476	time:162.202	power:102.180	walk:no	
40
+nid:1695281013	lon:2.326217	lat:48.827538	elevation:71.555	velocity:9.259	distance:1105.481	energy:22091.183	time:173.137	power:123.249	walk:no	
41
+nid:277556547	lon:2.326429	lat:48.827501	elevation:71.716	velocity:8.919	distance:1121.526	energy:22382.224	time:174.902	power:164.868	walk:no	
42
+nid:2521663531	lon:2.326665	lat:48.827518	elevation:72.020	velocity:7.828	distance:1138.950	energy:22382.224	time:176.983	power:-115.759	walk:no	
43
+nid:2521663562	lon:2.326693	lat:48.827620	elevation:72.198	velocity:7.568	distance:1150.549	energy:22621.914	time:178.490	power:159.082	walk:no	
44
+nid:64486369	lon:2.326738	lat:48.827786	elevation:72.456	velocity:5.664	distance:1169.302	energy:22621.914	time:181.324	power:-268.513	walk:no	
45
+nid:1363470285	lon:2.326799	lat:48.827771	elevation:72.539	velocity:5.596	distance:1174.057	energy:22747.975	time:182.169	power:149.226	walk:no	
46
+nid:64441594	lon:2.326863	lat:48.827769	elevation:72.642	velocity:5.497	distance:1178.810	energy:22877.444	time:183.026	power:151.089	walk:no	
47
+nid:1363470286	lon:2.326926	lat:48.827779	elevation:72.749	velocity:5.395	distance:1183.562	energy:23008.579	time:183.898	power:150.314	walk:no	
48
+nid:1965461269	lon:2.326981	lat:48.827802	elevation:72.844	velocity:5.317	distance:1188.314	energy:23140.058	time:184.786	power:148.168	walk:no	
49
+nid:64441586	lon:2.327023	lat:48.827834	elevation:72.914	velocity:5.283	distance:1193.064	energy:23270.649	time:185.682	power:145.712	walk:no	
50
+nid:2521663550	lon:2.327224	lat:48.827831	elevation:73.203	velocity:5.069	distance:1207.735	energy:23688.392	time:188.516	power:147.390	walk:no	
51
+nid:4759071768	lon:2.327687	lat:48.827829	elevation:73.924	velocity:4.604	distance:1241.658	energy:24717.789	time:195.529	power:146.778	walk:no	
52
+nid:4747660433	lon:2.327918	lat:48.827828	elevation:74.322	velocity:4.369	distance:1258.565	energy:25267.942	time:199.298	power:145.993	walk:no	
53
+nid:2521663575	lon:2.328849	lat:48.827823	elevation:74.821	velocity:5.169	distance:1326.742	energy:27218.662	time:213.593	power:136.461	walk:no	
54
+nid:24923998	lon:2.328989	lat:48.827823	elevation:74.758	velocity:5.445	distance:1336.984	energy:27473.451	time:215.523	power:132.036	walk:no	
55
+nid:342025471	lon:2.329135	lat:48.827821	elevation:74.707	velocity:5.669	distance:1347.638	energy:27729.869	time:217.440	power:133.748	walk:no	
56
+nid:24923999	lon:2.329553	lat:48.827817	elevation:74.255	velocity:6.526	distance:1378.272	energy:28363.140	time:222.464	power:126.050	walk:no	
57
+nid:910585323	lon:2.330085	lat:48.827822	elevation:73.542	velocity:7.404	distance:1417.197	energy:29062.945	time:228.053	power:125.212	walk:no	
58
+nid:2521663577	lon:2.330208	lat:48.827822	elevation:73.339	velocity:7.609	distance:1426.210	energy:29214.048	time:229.253	power:125.837	walk:no	
59
+nid:24924000	lon:2.330321	lat:48.827821	elevation:73.153	velocity:7.782	distance:1434.469	energy:29349.181	time:230.327	power:125.911	walk:no	
60
+nid:24924001	lon:2.330523	lat:48.827817	elevation:72.850	velocity:8.030	distance:1449.318	energy:29590.224	time:232.205	power:128.343	walk:no	
61
+nid:360944	lon:2.331710	lat:48.827811	elevation:71.000	velocity:9.091	distance:1536.180	energy:30877.702	time:242.351	power:126.891	walk:no	
62
+nid:4747660432	lon:2.331983	lat:48.827811	elevation:70.920	velocity:8.946	distance:1556.209	energy:31210.601	time:244.572	power:149.905	walk:no	
63
+nid:2521663526	lon:2.332313	lat:48.827812	elevation:70.812	velocity:8.798	distance:1580.381	energy:31615.585	time:247.296	power:148.643	walk:no	
64
+nid:24912956	lon:2.332534	lat:48.827812	elevation:70.644	velocity:8.801	distance:1596.501	energy:31875.639	time:249.128	power:141.953	walk:no	
65
+nid:2521663557	lon:2.332673	lat:48.827791	elevation:70.301	velocity:9.028	distance:1606.948	energy:32016.813	time:250.300	power:120.457	walk:no	
66
+nid:2521663560	lon:2.334713	lat:48.827491	elevation:65.743	velocity:9.700	distance:1760.037	energy:32296.928	time:266.649	power:17.133	walk:no	
67
+nid:24913004	lon:2.334833	lat:48.827473	elevation:65.547	velocity:9.700	distance:1769.070	energy:32365.774	time:267.581	power:73.931	walk:no	
68
+nid:1808731751	lon:2.334975	lat:48.827448	elevation:65.314	velocity:9.700	distance:1779.841	energy:32448.549	time:268.691	power:74.543	walk:no	
69
+nid:249662085	lon:2.335112	lat:48.827431	elevation:65.119	velocity:9.700	distance:1790.008	energy:32553.017	time:269.739	power:99.668	walk:no	
70
+nid:2521663537	lon:2.335202	lat:48.827418	elevation:64.985	velocity:9.700	distance:1796.766	energy:32618.327	time:270.436	power:93.738	walk:no	
71
+nid:249662175	lon:2.335513	lat:48.827373	elevation:64.336	velocity:9.700	distance:1820.142	energy:32641.208	time:272.846	power:9.495	walk:no	
72
+nid:4747660431	lon:2.335560	lat:48.827367	elevation:64.216	velocity:9.721	distance:1823.618	energy:32641.208	time:273.204	power:0.000	walk:no	
73
+nid:4759071769	lon:2.335816	lat:48.827330	elevation:63.439	velocity:9.937	distance:1842.818	energy:32641.208	time:275.157	power:0.000	walk:no	
74
+nid:250349330	lon:2.336710	lat:48.827200	elevation:60.474	velocity:10.747	distance:1909.897	energy:32641.208	time:281.643	power:0.000	walk:no	
75
+nid:250549782	lon:2.338633	lat:48.826915	elevation:55.372	velocity:10.948	distance:2054.302	energy:32641.208	time:294.956	power:0.000	walk:no	
76
+nid:1716744860	lon:2.339473	lat:48.826793	elevation:51.187	velocity:12.443	distance:2117.389	energy:32641.208	time:300.350	power:0.000	walk:no	
77
+nid:471617386	lon:2.341208	lat:48.826544	elevation:50.802	velocity:9.700	distance:2247.401	energy:33856.921	time:312.093	power:103.526	walk:no	
78
+nid:4747660430	lon:2.341254	lat:48.826528	elevation:50.831	velocity:9.622	distance:2251.220	energy:33923.313	time:312.488	power:167.951	walk:no	
79
+nid:494003050	lon:2.341347	lat:48.826499	elevation:50.832	velocity:9.521	distance:2258.729	energy:34047.296	time:313.273	power:158.022	walk:no	
80
+nid:3742389171	lon:2.341434	lat:48.826478	elevation:50.774	velocity:9.485	distance:2265.499	energy:34153.217	time:313.985	power:148.701	walk:no	
81
+nid:471617388	lon:2.341577	lat:48.826450	elevation:50.597	velocity:9.506	distance:2276.419	energy:34314.145	time:315.135	power:139.935	walk:no	
82
+nid:494003057	lon:2.341699	lat:48.826433	elevation:50.401	velocity:9.567	distance:2285.581	energy:34444.051	time:316.096	power:135.222	walk:no	
83
+nid:471617390	lon:2.341796	lat:48.826420	elevation:50.254	velocity:9.605	distance:2292.783	energy:34546.792	time:316.847	power:136.737	walk:no	
84
+nid:3742389169	lon:2.341906	lat:48.826400	elevation:50.074	velocity:9.656	distance:2301.160	energy:34664.234	time:317.717	power:135.017	walk:no	
85
+nid:1912916968	lon:2.342000	lat:48.826383	elevation:49.919	velocity:9.698	distance:2308.311	energy:34764.084	time:318.456	power:135.125	walk:no	
86
+nid:471617379	lon:2.342182	lat:48.826381	elevation:49.698	velocity:9.700	distance:2321.608	energy:34940.940	time:319.827	power:129.000	walk:no	
87
+nid:4759071770	lon:2.342310	lat:48.826364	elevation:49.501	velocity:9.700	distance:2331.218	energy:35026.647	time:320.818	power:86.510	walk:no	
88
+nid:2531569888	lon:2.343018	lat:48.826269	elevation:50.289	velocity:8.336	distance:2384.147	energy:36023.221	time:326.687	power:169.793	walk:no	
89
+nid:5021673916	lon:2.343942	lat:48.826130	elevation:51.392	velocity:6.779	distance:2453.467	energy:37489.470	time:335.860	power:159.852	walk:no	
90
+nid:100292096	lon:2.344047	lat:48.826114	elevation:51.521	velocity:6.625	distance:2461.398	energy:37671.078	time:337.043	power:153.455	walk:no	
91
+nid:5021673915	lon:2.344153	lat:48.826098	elevation:51.665	velocity:6.458	distance:2469.348	energy:37858.718	time:338.259	power:154.378	walk:no	
92
+nid:1852739233	lon:2.345098	lat:48.825954	elevation:54.061	velocity:3.735	distance:2540.370	energy:40037.395	time:352.193	power:156.346	walk:no	
93
+nid:360938	lon:2.345199	lat:48.825939	elevation:54.462	velocity:3.232	distance:2547.991	energy:40371.489	time:354.381	power:152.707	walk:no	
94
+nid:1852739231	lon:2.345347	lat:48.825930	elevation:55.018	velocity:2.684	distance:2558.903	energy:40919.796	time:358.071	power:148.615	walk:no	
95
+nid:4747660429	lon:2.345679	lat:48.825882	elevation:56.325	velocity:2.066	distance:2583.769	energy:42444.234	time:368.542	power:145.587	walk:no	
96
+nid:4758542221	lon:2.346016	lat:48.825834	elevation:56.998	velocity:3.118	distance:2609.028	energy:43753.745	time:378.287	power:134.368	walk:no	
97
+nid:2286779124	lon:2.346451	lat:48.825772	elevation:56.669	velocity:5.080	distance:2641.657	energy:44719.032	time:386.247	power:121.272	walk:no	
98
+nid:360937	lon:2.346587	lat:48.825755	elevation:56.605	velocity:5.369	distance:2651.749	energy:44972.916	time:388.179	power:131.436	walk:no	
99
+nid:2286779121	lon:2.346704	lat:48.825734	elevation:56.493	velocity:5.670	distance:2660.656	energy:45179.962	time:389.792	power:128.302	walk:no	
100
+nid:1852739222	lon:2.347100	lat:48.825665	elevation:55.986	velocity:6.588	distance:2690.649	energy:45788.801	time:394.686	power:124.407	walk:no	
101
+nid:49889917	lon:2.347207	lat:48.825650	elevation:55.901	velocity:6.718	distance:2698.638	energy:45948.010	time:395.887	power:132.591	walk:no	
102
+nid:1852739227	lon:2.347306	lat:48.825778	elevation:56.119	velocity:6.471	distance:2714.529	energy:46311.490	time:398.297	power:150.848	walk:no	
103
+nid:2286779141	lon:2.347433	lat:48.825946	elevation:56.328	velocity:6.281	distance:2735.399	energy:46793.096	time:401.570	power:147.137	walk:no	
104
+nid:1829061610	lon:2.347478	lat:48.826005	elevation:56.428	velocity:6.184	distance:2742.804	energy:46969.449	time:402.758	power:148.443	walk:no	
105
+nid:2286779145	lon:2.347511	lat:48.826050	elevation:56.494	velocity:6.127	distance:2748.381	energy:47103.157	time:403.664	power:147.590	walk:no	
106
+nid:1829061676	lon:2.348167	lat:48.826925	elevation:60.164	velocity:2.581	distance:2856.895	energy:50937.690	time:428.584	power:153.870	walk:no	
107
+nid:3758221284	lon:2.348666	lat:48.827321	elevation:63.327	velocity:1.761	distance:2914.214	energy:54784.453	time:454.981	power:145.729	walk:no	
108
+nid:1829061614	lon:2.348738	lat:48.827373	elevation:63.724	velocity:2.042	distance:2922.031	energy:55356.278	time:459.091	power:139.119	walk:no	
109
+nid:92192237	lon:2.349025	lat:48.827587	elevation:64.515	velocity:3.307	distance:2953.784	energy:56941.474	time:470.962	power:133.536	walk:no	
110
+nid:1852590201	lon:2.349472	lat:48.827651	elevation:64.889	velocity:4.206	distance:2987.282	energy:58139.586	time:479.880	power:134.360	walk:no	
111
+nid:246262622	lon:2.349460	lat:48.827720	elevation:64.654	velocity:4.888	distance:2994.964	energy:58334.898	time:481.569	power:115.609	walk:no	
112
+nid:2286779155	lon:2.349518	lat:48.827773	elevation:64.576	velocity:5.178	distance:3002.291	energy:58521.889	time:483.025	power:128.453	walk:no	
113
+nid:1829061646	lon:2.349816	lat:48.828031	elevation:64.364	velocity:5.968	distance:3038.349	energy:59369.935	time:489.495	power:131.062	walk:no	
114
+nid:2286779161	lon:2.349847	lat:48.828057	elevation:64.357	velocity:6.010	distance:3041.945	energy:59453.451	time:490.096	power:139.098	walk:no	
115
+nid:2286779168	lon:2.350713	lat:48.828779	elevation:65.098	velocity:5.845	distance:3144.315	energy:61923.552	time:507.367	power:143.019	walk:no	
116
+nid:246264611	lon:2.350772	lat:48.828827	elevation:65.216	velocity:5.739	distance:3151.130	energy:62099.284	time:508.543	power:149.360	walk:no	
117
+nid:2286779171	lon:2.350839	lat:48.828880	elevation:65.349	velocity:5.625	distance:3158.840	energy:62301.080	time:509.900	power:148.727	walk:no	
118
+nid:3659320437	lon:2.351488	lat:48.829392	elevation:63.647	velocity:7.838	distance:3232.998	energy:63582.376	time:520.916	power:116.313	walk:no	
119
+nid:3758224974	lon:2.352196	lat:48.829941	elevation:62.713	velocity:8.297	distance:3313.107	energy:64932.083	time:530.846	power:135.928	walk:no	
120
+nid:3758225079	lon:2.352506	lat:48.830177	elevation:63.174	velocity:7.576	distance:3347.722	energy:65626.944	time:535.207	power:159.317	walk:no	
121
+nid:246264818	lon:2.352507	lat:48.830200	elevation:63.062	velocity:7.693	distance:3350.383	energy:65665.517	time:535.556	power:110.677	walk:no	
122
+nid:2620043359	lon:2.352488	lat:48.830227	elevation:62.862	velocity:7.902	distance:3353.632	energy:65703.898	time:535.972	power:92.108	walk:no	
123
+nid:2605950169	lon:2.352461	lat:48.830264	elevation:62.575	velocity:5.338	distance:3358.239	energy:65703.898	time:536.668	power:-3054.279	walk:no	
124
+nid:1912916964	lon:2.352629	lat:48.830332	elevation:62.872	velocity:5.101	distance:3372.618	energy:66111.887	time:539.423	power:148.093	walk:no	
125
+nid:361726	lon:2.352759	lat:48.830378	elevation:63.117	velocity:4.906	distance:3383.469	energy:66433.032	time:541.592	power:148.081	walk:no	
126
+nid:2503846250	lon:2.353301	lat:48.830548	elevation:64.252	velocity:4.101	distance:3427.448	energy:67877.554	time:551.357	power:147.924	walk:no	
127
+nid:2499743240	lon:2.354416	lat:48.830900	elevation:64.849	velocity:5.323	distance:3517.906	energy:70465.461	time:570.554	power:134.810	walk:no	
128
+nid:659902147	lon:2.354531	lat:48.830934	elevation:64.720	velocity:5.662	distance:3527.189	energy:70681.376	time:572.244	power:127.759	walk:no	
129
+nid:3758225232	lon:2.354752	lat:48.831004	elevation:64.362	velocity:6.329	distance:3545.174	energy:71049.735	time:575.244	power:122.801	walk:no	
130
+nid:2499743242	lon:2.354811	lat:48.831022	elevation:64.247	velocity:6.506	distance:3549.884	energy:71139.649	time:575.978	power:122.510	walk:no	
131
+nid:659902149	lon:2.354874	lat:48.831040	elevation:64.121	velocity:6.690	distance:3554.902	energy:71232.792	time:576.738	power:122.474	walk:no	
132
+nid:361712	lon:2.355096	lat:48.831122	elevation:63.426	velocity:7.520	distance:3573.525	energy:71521.132	time:579.359	power:110.000	walk:no	
133
+nid:4250154475	lon:2.355177	lat:48.831073	elevation:63.488	velocity:7.420	distance:3581.565	energy:71683.698	time:580.436	power:151.043	walk:no	
134
+nid:361703	lon:2.355269	lat:48.831033	elevation:63.473	velocity:7.413	distance:3589.611	energy:71838.630	time:581.521	power:142.802	walk:no	
135
+nid:245229004	lon:2.355392	lat:48.830999	elevation:63.357	velocity:7.516	distance:3599.359	energy:72014.132	time:582.826	power:134.387	walk:no	
136
+nid:21648681	lon:2.355522	lat:48.830982	elevation:63.144	velocity:7.720	distance:3609.115	energy:72176.265	time:584.107	power:126.594	walk:no	
137
+nid:245225501	lon:2.355758	lat:48.830996	elevation:62.577	velocity:8.232	distance:3626.433	energy:72428.712	time:586.279	power:116.266	walk:no	
138
+nid:2566755286	lon:2.355950	lat:48.830880	elevation:62.986	velocity:7.661	distance:3645.510	energy:72827.845	time:588.679	power:166.258	walk:no	
139
+nid:1836902820	lon:2.356000	lat:48.830869	elevation:63.090	velocity:7.524	distance:3649.420	energy:72914.280	time:589.194	power:167.862	walk:no	
140
+nid:361706	lon:2.356251	lat:48.830827	elevation:63.563	velocity:6.912	distance:3668.378	energy:73343.680	time:591.821	power:163.492	walk:no	
141
+nid:356385435	lon:2.356548	lat:48.830932	elevation:63.704	velocity:6.752	distance:3693.023	energy:73870.897	time:595.428	power:146.158	walk:no	
142
+nid:357997310	lon:2.356626	lat:48.830971	elevation:63.770	velocity:6.679	distance:3700.226	energy:74029.703	time:596.500	power:148.057	walk:no	
143
+nid:2301234738	lon:2.356784	lat:48.831040	elevation:64.103	velocity:6.279	distance:3714.066	energy:74366.605	time:598.636	power:157.713	walk:no	
144
+nid:4862626359	lon:2.356821	lat:48.831053	elevation:64.194	velocity:6.169	distance:3717.120	energy:74445.739	time:599.127	power:161.300	walk:no	
145
+nid:4862626358	lon:2.356888	lat:48.831075	elevation:64.353	velocity:5.982	distance:3722.677	energy:74591.273	time:600.042	power:159.113	walk:no	
146
+nid:4862626361	lon:2.356929	lat:48.831089	elevation:64.444	velocity:5.877	distance:3725.983	energy:74678.371	time:600.599	power:156.212	walk:no	
147
+nid:429385250	lon:2.357112	lat:48.831150	elevation:64.817	velocity:5.479	distance:3741.055	energy:75084.737	time:603.254	power:153.084	walk:no	
148
+nid:2301475512	lon:2.357909	lat:48.831414	elevation:63.779	velocity:7.169	distance:3806.356	energy:76354.891	time:613.580	power:123.002	walk:no	
149
+nid:356385445	lon:2.358108	lat:48.831482	elevation:63.042	velocity:7.954	distance:3822.826	energy:76582.283	time:615.758	power:104.401	walk:no	
150
+nid:356406175	lon:2.358221	lat:48.831519	elevation:62.649	velocity:8.313	distance:3832.011	energy:76704.604	time:616.888	power:108.313	walk:no	
151
+nid:2301475533	lon:2.358272	lat:48.831536	elevation:62.472	velocity:8.464	distance:3836.234	energy:76760.059	time:617.391	power:110.161	walk:no	
152
+nid:2301475550	lon:2.358988	lat:48.831777	elevation:58.991	velocity:10.389	distance:3895.157	energy:76760.059	time:623.642	power:0.000	walk:no	
153
+nid:4862626357	lon:2.359212	lat:48.831852	elevation:58.043	velocity:10.715	distance:3913.579	energy:76760.059	time:625.388	power:0.000	walk:no	
154
+nid:4862626356	lon:2.359553	lat:48.831967	elevation:57.007	velocity:10.804	distance:3941.688	energy:76760.059	time:628.000	power:0.000	walk:no	
155
+nid:2301475555	lon:2.359818	lat:48.832057	elevation:56.437	velocity:10.662	distance:3963.493	energy:76760.059	time:630.032	power:0.000	walk:no	
156
+nid:356406134	lon:2.359961	lat:48.832104	elevation:56.215	velocity:10.514	distance:3975.219	energy:76760.059	time:631.139	power:0.000	walk:no	
157
+nid:2301475563	lon:2.360044	lat:48.832133	elevation:56.191	velocity:10.332	distance:3982.086	energy:76760.059	time:631.798	power:0.000	walk:no	
158
+nid:2650569878	lon:2.361845	lat:48.832737	elevation:52.834	velocity:9.700	distance:4130.050	energy:77241.262	time:646.571	power:32.574	walk:no	
159
+nid:356385450	lon:2.361934	lat:48.832767	elevation:52.768	velocity:9.660	distance:4137.352	energy:77353.847	time:647.325	power:149.238	walk:no	
160
+nid:644147	lon:2.362153	lat:48.832743	elevation:52.315	velocity:9.700	distance:4153.618	energy:77410.861	time:649.006	power:33.929	walk:no	
161
+nid:2264971744	lon:2.362301	lat:48.832792	elevation:52.069	velocity:9.700	distance:4165.738	energy:77520.951	time:650.255	power:88.106	walk:no	
162
+nid:2650782891	lon:2.363524	lat:48.833198	elevation:50.184	velocity:9.700	distance:4266.070	energy:78604.939	time:660.599	power:104.799	walk:no	
163
+nid:924231501	lon:2.363573	lat:48.833214	elevation:50.061	velocity:9.710	distance:4270.012	energy:78604.939	time:661.005	power:0.000	walk:no	
164
+nid:792962	lon:2.363647	lat:48.833320	elevation:49.660	velocity:9.738	distance:4283.015	energy:78604.939	time:662.342	power:0.000	walk:no	
165
+nid:2602173273	lon:2.363807	lat:48.833388	elevation:49.150	velocity:9.843	distance:4296.988	energy:78604.939	time:663.769	power:0.000	walk:no	
166
+nid:2722028171	lon:2.364902	lat:48.833758	elevation:46.389	velocity:9.947	distance:4387.105	energy:78604.939	time:672.877	power:0.000	walk:no	
167
+nid:382050	lon:2.365094	lat:48.833823	elevation:46.036	velocity:9.836	distance:4402.919	energy:78604.939	time:674.475	power:0.000	walk:no	
168
+nid:2722028176	lon:2.365251	lat:48.833875	elevation:45.734	velocity:9.764	distance:4415.797	energy:78604.939	time:675.789	power:0.000	walk:no	
169
+nid:2722028187	lon:2.367115	lat:48.834495	elevation:41.252	velocity:9.813	distance:4568.697	energy:78604.939	time:691.410	power:0.000	walk:no	
170
+nid:2575130888	lon:2.367271	lat:48.834546	elevation:41.682	velocity:9.245	distance:4581.462	energy:78863.485	time:692.750	power:193.004	walk:no	
171
+nid:15859479	lon:2.367342	lat:48.834572	elevation:41.881	velocity:8.983	distance:4587.423	energy:78987.085	time:693.404	power:188.955	walk:no	
172
+nid:2722028210	lon:2.367476	lat:48.834616	elevation:42.281	velocity:8.470	distance:4598.355	energy:79221.221	time:694.657	power:186.910	walk:no	
173
+nid:2722028233	lon:2.368888	lat:48.835078	elevation:40.180	velocity:9.289	distance:4713.769	energy:80937.925	time:707.654	power:132.079	walk:no	
174
+nid:15859504	lon:2.369012	lat:48.835119	elevation:39.863	velocity:9.458	distance:4723.978	energy:81072.833	time:708.743	power:123.873	walk:no	
175
+nid:15859502	lon:2.369449	lat:48.835265	elevation:39.047	velocity:9.700	distance:4759.807	energy:81542.824	time:712.484	power:125.654	walk:no	
176
+nid:2574957858	lon:2.369858	lat:48.835449	elevation:38.385	velocity:9.700	distance:4796.059	energy:81955.456	time:716.221	power:110.406	walk:no	
177
+nid:15859506	lon:2.369990	lat:48.835508	elevation:38.170	velocity:9.700	distance:4807.832	energy:82089.520	time:717.435	power:110.464	walk:no	
178
+nid:2575067143	lon:2.370624	lat:48.835783	elevation:37.794	velocity:9.321	distance:4863.375	energy:82970.069	time:723.275	power:150.773	walk:no	
179
+nid:15860537	lon:2.370857	lat:48.835885	elevation:37.237	velocity:9.574	distance:4883.820	energy:83245.269	time:725.439	power:127.164	walk:no	
180
+nid:382049	lon:2.371492	lat:48.836208	elevation:35.076	velocity:10.027	distance:4942.605	energy:83245.269	time:731.437	power:0.000	walk:no	
181
+nid:2268057930	lon:2.371626	lat:48.836281	elevation:35.036	velocity:9.700	distance:4955.387	energy:83251.634	time:732.733	power:4.912	walk:no	
182
+nid:2268057933	lon:2.371953	lat:48.836458	elevation:35.299	velocity:9.061	distance:4986.363	energy:83799.481	time:736.035	power:165.905	walk:no	
183
+nid:14956508	lon:2.372075	lat:48.836525	elevation:35.631	velocity:8.609	distance:4998.036	energy:84038.198	time:737.356	power:180.670	walk:no	
184
+nid:2140279469	lon:2.372163	lat:48.836573	elevation:35.957	velocity:8.196	distance:5006.320	energy:84221.673	time:738.342	power:186.102	walk:no	
185
+nid:2280056294	lon:2.372563	lat:48.836741	elevation:38.191	velocity:5.269	distance:5041.132	energy:85173.843	time:743.513	power:184.147	walk:no	
186
+nid:319176531	lon:2.373120	lat:48.837003	elevation:39.673	velocity:3.937	distance:5091.308	energy:86817.550	time:754.413	power:150.804	walk:no	
187
+nid:3150301790	lon:2.373397	lat:48.837139	elevation:39.811	velocity:4.587	distance:5116.533	energy:87611.593	time:760.331	power:134.163	walk:no	
188
+nid:3150301791	lon:2.373639	lat:48.837258	elevation:39.531	velocity:5.515	distance:5138.672	energy:88160.682	time:764.715	power:125.266	walk:no	
189
+nid:14956514	lon:2.373860	lat:48.837366	elevation:39.275	velocity:5.179	distance:5158.871	energy:88160.682	time:768.492	power:-43.830	walk:no	
190
+nid:368093	lon:2.373654	lat:48.837570	elevation:37.788	velocity:4.829	distance:5186.084	energy:88160.682	time:773.930	power:-262.171	walk:no	
191
+nid:411722086	lon:2.373987	lat:48.837571	elevation:38.076	velocity:4.897	distance:5210.399	energy:88866.115	time:778.931	power:141.079	walk:no	
192
+nid:411722080	lon:2.375722	lat:48.838524	elevation:36.941	velocity:5.063	distance:5375.842	energy:90154.483	time:812.152	power:38.781	walk:no	
193
+nid:411722081	lon:2.375749	lat:48.838503	elevation:36.891	velocity:5.210	distance:5378.909	energy:90230.111	time:812.750	power:126.657	walk:no	
194
+nid:411722082	lon:2.375826	lat:48.838445	elevation:36.667	velocity:5.696	distance:5387.448	energy:90416.732	time:814.316	power:119.169	walk:no	
195
+nid:84762463	lon:2.375922	lat:48.838497	elevation:37.279	velocity:4.825	distance:5396.535	energy:90717.027	time:816.043	power:173.835	walk:no	
196
+nid:84762462	lon:2.376361	lat:48.838733	elevation:39.995	velocity:1.008	distance:5438.155	energy:92942.206	time:830.311	power:155.954	walk:no	
197
+nid:268210776	lon:2.376288	lat:48.838847	elevation:40.382	velocity:2.749	distance:5451.931	energy:93869.190	time:837.643	power:126.435	walk:no	
198
+nid:411722083	lon:2.376400	lat:48.838906	elevation:41.010	velocity:2.156	distance:5462.477	energy:94503.979	time:841.943	power:147.637	walk:no	
199
+nid:667287805	lon:2.376510	lat:48.838887	elevation:41.217	velocity:2.706	distance:5470.817	energy:94966.849	time:845.373	power:134.933	walk:no	
200
+nid:667287806	lon:2.379003	lat:48.840222	elevation:45.490	velocity:4.770	distance:5706.104	energy:103445.630	time:908.317	power:134.703	walk:no	
201
+nid:1038123187	lon:2.379115	lat:48.840213	elevation:45.843	velocity:4.341	distance:5714.355	energy:103728.199	time:910.128	power:156.013	walk:no	
202
+nid:1767611168	lon:2.379135	lat:48.840226	elevation:45.899	velocity:4.301	distance:5716.368	energy:103797.467	time:910.594	power:148.638	walk:no	
203
+nid:123532939	lon:2.379208	lat:48.840274	elevation:45.834	velocity:4.670	distance:5723.954	energy:104014.895	time:912.286	power:128.569	walk:no	
204
+nid:1651629113	lon:2.379362	lat:48.840342	elevation:45.145	velocity:6.002	distance:5737.525	energy:104268.031	time:914.829	power:99.534	walk:no	
205
+nid:2819409889	lon:2.379576	lat:48.840380	elevation:44.123	velocity:7.359	distance:5753.740	energy:104478.872	time:917.256	power:86.867	walk:no	
206
+nid:2819409888	lon:2.380102	lat:48.840280	elevation:42.491	velocity:8.821	distance:5793.870	energy:105000.488	time:922.217	power:105.153	walk:no	
207
+nid:2819409887	lon:2.380542	lat:48.840204	elevation:42.213	velocity:8.758	distance:5827.190	energy:105546.419	time:926.007	power:144.017	walk:no	
208
+nid:2819409886	lon:2.382091	lat:48.839937	elevation:38.906	velocity:9.700	distance:5944.396	energy:106326.872	time:938.707	power:61.456	walk:no	
209
+nid:2819409885	lon:2.382129	lat:48.839927	elevation:38.762	velocity:9.759	distance:5947.382	energy:106326.872	time:939.014	power:0.000	walk:no	
210
+nid:2819409884	lon:2.382275	lat:48.839887	elevation:38.227	velocity:9.954	distance:5958.962	energy:106326.872	time:940.188	power:0.000	walk:no	
211
+nid:2819409883	lon:2.382320	lat:48.839875	elevation:38.067	velocity:10.006	distance:5962.545	energy:106326.872	time:940.547	power:0.000	walk:no	
212
+nid:2819409882	lon:2.382410	lat:48.839851	elevation:37.751	velocity:10.106	distance:5969.645	energy:106326.872	time:941.254	power:0.000	walk:no	
213
+nid:1651614418	lon:2.382546	lat:48.839813	elevation:37.685	velocity:9.853	distance:5980.464	energy:106326.872	time:942.338	power:0.000	walk:no	
214
+nid:1651614441	lon:2.383230	lat:48.839686	elevation:39.946	velocity:6.999	distance:6032.519	energy:107491.056	time:948.516	power:188.445	walk:no	
215
+nid:1395428290	lon:2.384281	lat:48.839509	elevation:39.137	velocity:7.720	distance:6111.940	energy:108933.305	time:959.307	power:133.647	walk:no	
216
+nid:1651614449	lon:2.385546	lat:48.839295	elevation:40.000	velocity:6.551	distance:6207.490	energy:110965.692	time:972.698	power:151.776	walk:no	
217
+nid:1651614446	lon:2.387167	lat:48.839016	elevation:41.839	velocity:5.076	distance:6330.129	energy:114118.500	time:993.793	power:149.454	walk:no	
218
+nid:1835293744	lon:2.387777	lat:48.838914	elevation:43.189	velocity:3.925	distance:6376.226	energy:115654.407	time:1004.036	power:149.952	walk:no	
219
+nid:15378800	lon:2.388121	lat:48.838951	elevation:44.334	velocity:2.817	distance:6401.788	energy:116791.088	time:1011.619	power:149.897	walk:no	
220
+nid:3700078777	lon:2.388019	lat:48.839054	elevation:44.431	velocity:3.631	distance:6415.437	energy:117345.805	time:1015.852	power:131.031	walk:no	
221
+nid:1395333979	lon:2.387876	lat:48.839198	elevation:44.316	velocity:4.636	distance:6434.589	energy:117933.601	time:1020.486	power:126.860	walk:no	
222
+nid:15378801	lon:2.387481	lat:48.839580	elevation:42.482	velocity:7.504	distance:6485.933	energy:118800.091	time:1028.944	power:102.440	walk:no	
223
+nid:15378802	lon:2.386622	lat:48.840435	elevation:44.474	velocity:5.284	distance:6599.999	energy:121559.346	time:1046.783	power:154.677	walk:no	
224
+nid:3700078938	lon:2.386581	lat:48.840477	elevation:44.594	velocity:5.182	distance:6605.504	energy:121715.721	time:1047.835	power:148.641	walk:no	
225
+nid:1425637956	lon:2.386525	lat:48.840535	elevation:44.757	velocity:5.053	distance:6613.130	energy:121936.047	time:1049.325	power:147.853	walk:no	
226
+nid:15378803	lon:2.386306	lat:48.840755	elevation:45.273	velocity:4.810	distance:6642.445	energy:122797.687	time:1055.270	power:144.942	walk:no	
227
+nid:3700078973	lon:2.386248	lat:48.840811	elevation:45.375	velocity:4.814	distance:6649.957	energy:123020.191	time:1056.831	power:142.535	walk:no	
228
+nid:15378804	lon:2.385855	lat:48.841195	elevation:44.055	velocity:7.091	distance:6701.462	energy:123996.311	time:1065.483	power:112.818	walk:no	
229
+nid:3700078995	lon:2.385823	lat:48.841227	elevation:43.948	velocity:7.217	distance:6705.745	energy:124070.360	time:1066.082	power:123.708	walk:no	
230
+nid:3708177474	lon:2.385585	lat:48.841463	elevation:42.810	velocity:4.991	distance:6737.169	energy:124070.360	time:1071.230	power:-428.290	walk:no	
231
+nid:3708177472	lon:2.384841	lat:48.841132	elevation:39.686	velocity:0.000	distance:6803.007	energy:126240.464	time:1086.731	power:140.000	walk:yes	
232
+end track 0

+ 12
- 0
src/.gitrepo View File

@@ -0,0 +1,12 @@
1
+; DO NOT EDIT (unless you know what you are doing)
2
+;
3
+; This subdirectory is a git "subrepo", and this file is maintained by the
4
+; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
5
+;
6
+[subrepo]
7
+	remote = https://github.com/vuetifyjs/templates-common
8
+	branch = subrepo/webpack-src
9
+	commit = 2be12ee4d71dc96ab1ea1a58fc102274502cd39b
10
+	parent = e60c7163866ffc2835b612330eb0b0faa6acd633
11
+	method = merge
12
+	cmdver = 0.4.0

+ 91
- 0
src/App.vue View File

@@ -0,0 +1,91 @@
1
+<template>
2
+    <v-app>
3
+        <v-navigation-drawer
4
+            persistent
5
+            :mini-variant="miniVariant"
6
+            :clipped="clipped"
7
+            v-model="drawer"
8
+            enable-resize-watcher
9
+            fixed
10
+            app
11
+            >
12
+            <v-list>
13
+                <v-list-tile
14
+                    value="true"
15
+                    v-for="(item, i) in items"
16
+                    :key="i"
17
+                    >
18
+                    <v-list-tile-action>
19
+                        <v-icon v-html="item.icon"></v-icon>
20
+                    </v-list-tile-action>
21
+                    <v-list-tile-content>
22
+                        <v-list-tile-title v-text="item.title"></v-list-tile-title>
23
+                    </v-list-tile-content>
24
+                </v-list-tile>
25
+            </v-list>
26
+        </v-navigation-drawer>
27
+        <v-toolbar
28
+            app
29
+            :clipped-left="clipped"
30
+            >
31
+            <v-toolbar-side-icon @click.stop="drawer = !drawer"></v-toolbar-side-icon>
32
+            <v-btn icon @click.stop="miniVariant = !miniVariant">
33
+                <v-icon v-html="miniVariant ? 'chevron_right' : 'chevron_left'"></v-icon>
34
+            </v-btn>
35
+            <v-btn icon @click.stop="clipped = !clipped">
36
+                <v-icon>web</v-icon>
37
+            </v-btn>
38
+            <v-btn icon @click.stop="fixed = !fixed">
39
+                <v-icon>remove</v-icon>
40
+            </v-btn>
41
+            <v-toolbar-title v-text="title"></v-toolbar-title>
42
+            <v-spacer></v-spacer>
43
+            <v-btn icon @click.stop="rightDrawer = !rightDrawer">
44
+                <v-icon>menu</v-icon>
45
+            </v-btn>
46
+        </v-toolbar>
47
+        <v-content>
48
+            <router-view></router-view>
49
+        </v-content>
50
+        <v-navigation-drawer
51
+            temporary
52
+            :right="right"
53
+            v-model="rightDrawer"
54
+            fixed
55
+            app
56
+            >
57
+            <v-list>
58
+                <v-list-tile @click="right = !right">
59
+                    <v-list-tile-action>
60
+                        <v-icon>compare_arrows</v-icon>
61
+                    </v-list-tile-action>
62
+                    <v-list-tile-title>Switch drawer (click me)</v-list-tile-title>
63
+                </v-list-tile>
64
+            </v-list>
65
+        </v-navigation-drawer>
66
+        <v-footer :fixed="fixed" app>
67
+            <span>&copy; 2017</span>
68
+        </v-footer>
69
+    </v-app>
70
+</template>
71
+
72
+<script>
73
+export default {
74
+    data() {
75
+        return {
76
+            clipped: false,
77
+            drawer: true,
78
+            fixed: false,
79
+            items: [{
80
+                icon: 'bubble_chart',
81
+                title: 'Inspire',
82
+            }],
83
+            miniVariant: false,
84
+            right: true,
85
+            rightDrawer: false,
86
+            title: 'Vuetify.js',
87
+        };
88
+    },
89
+    name: 'App',
90
+};
91
+</script>

BIN
src/assets/logo.png View File


+ 56
- 0
src/components/HelloWorld.vue View File

@@ -0,0 +1,56 @@
1
+<template>
2
+    <v-container fluid>
3
+        <v-slide-y-transition mode="out-in">
4
+            <v-layout column align-center>
5
+                <div id="map" v-if="track">
6
+                    <v-map :bounds="bounds">
7
+                        <v-tilelayer url="http://{s}.tile.osm.org/{z}/{x}/{y}.png"></v-tilelayer>
8
+                        <v-polyline :latLngs="track"></v-polyline>
9
+                    </v-map>
10
+                </div>
11
+            </v-layout>
12
+        </v-slide-y-transition>
13
+    </v-container>
14
+</template>
15
+
16
+<script>
17
+import 'isomorphic-fetch';
18
+
19
+export default {
20
+    data() {
21
+        return {
22
+            track: null,
23
+        };
24
+    },
25
+    created() {
26
+        this.getTrack();
27
+    },
28
+    methods: {
29
+        getTrack() {
30
+            fetch('http://127.0.0.1:8081/')
31
+                .then(response => response.json())
32
+                .then((json) => {
33
+                    this.track = json.data.track;
34
+                });
35
+        },
36
+    },
37
+    computed: {
38
+        bounds() {
39
+            if (!this.track) {
40
+                return [];
41
+            }
42
+            return [
43
+                [Math.min(...this.track.map(x => x[0])), Math.min(...this.track.map(x => x[1]))],
44
+                [Math.max(...this.track.map(x => x[0])), Math.max(...this.track.map(x => x[1]))],
45
+            ];
46
+        },
47
+    },
48
+};
49
+</script>
50
+
51
+<style scoped>
52
+#map {
53
+    height: 600px;
54
+    width: 100%;
55
+  }
56
+</style>

+ 26
- 0
src/main.js View File

@@ -0,0 +1,26 @@
1
+// The Vue build version to load with the `import` command
2
+// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3
+import Vue from 'vue';
4
+import Vuetify from 'vuetify';
5
+import 'vuetify/dist/vuetify.min.css';
6
+import Vue2Leaflet from 'vue2-leaflet';
7
+import 'leaflet/dist/leaflet.css';
8
+
9
+import App from './App.vue';
10
+import router from './router';
11
+
12
+Vue.component('v-map', Vue2Leaflet.Map);
13
+Vue.component('v-tilelayer', Vue2Leaflet.TileLayer);
14
+Vue.component('v-polyline', Vue2Leaflet.Polyline);
15
+
16
+Vue.use(Vuetify);
17
+
18
+Vue.config.productionTip = false;
19
+
20
+/* eslint-disable no-new */
21
+new Vue({
22
+    el: '#app',
23
+    router,
24
+    components: { App },
25
+    template: '<App/>',
26
+});

+ 15
- 0
src/router/index.js View File

@@ -0,0 +1,15 @@
1
+import Vue from 'vue';
2
+import Router from 'vue-router';
3
+import HelloWorld from '@/components/HelloWorld.vue';
4
+
5
+Vue.use(Router);
6
+
7
+export default new Router({
8
+    routes: [
9
+        {
10
+            path: '/',
11
+            name: 'HelloWorld',
12
+            component: HelloWorld,
13
+        },
14
+    ],
15
+});

+ 0
- 0
static/.gitkeep View File