nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 25c9f2f6b265e8811261430e5adda46279368394
parent dae7230ad51bcfd5429ac363127466a59fb1633c
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Tue,  7 Nov 2017 22:56:27 +0300

[tracks] added loading routes from ozi .rte files

Diffstat:
Msrc/lib/leaflet.control.track-list/lib/geo_file_formats.js | 38++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+), 0 deletions(-)

diff --git a/src/lib/leaflet.control.track-list/lib/geo_file_formats.js b/src/lib/leaflet.control.track-list/lib/geo_file_formats.js @@ -134,6 +134,43 @@ function parseGpx(txt, name, preferNameFromFile) { } +function parseOziRte(txt, name) { + let error, segments = []; + const lines = txt.split('\n'); + if (lines[0].indexOf('OziExplorer Route File') !== 0) { + return null; + } + let currentSegment = []; + for (let i=4; i < lines.length; i++) { + let line = lines[i].trim(); + if (!line) { + continue; + } + let fields = line.split(','); + if (fields[0] === 'R') { + if (currentSegment.length) { + segments.push(currentSegment); + } + currentSegment = []; + } else if (fields[0] === 'W') { + let lat = parseFloat(fields[5]); + let lng = parseFloat(fields[6]); + if (isNaN(lat) || isNaN(lng)) { + error = 'CORRUPT'; + break; + } + currentSegment.push({lat, lng}); + } else { + error = 'CORRUPT'; + break + } + } + if (currentSegment.length) { + segments.push(currentSegment); + } + return [{name, tracks: segments, error}]; +} + function parseOziPlt(txt, name) { var error; var segments = []; @@ -729,6 +766,7 @@ function parseGeoFile(name, data, preferNameFromFile) { parseKmz, parseZip, parseGpx, + parseOziRte, parseOziPlt, parseOziWpt, parseKml,