unify formatting
This commit is contained in:
parent
6419d5defd
commit
553f764e69
@ -17,8 +17,8 @@ let gpxTrack = null;
|
|||||||
*/
|
*/
|
||||||
function toWGS84(point) {
|
function toWGS84(point) {
|
||||||
// convert LV95 into the civilian system
|
// convert LV95 into the civilian system
|
||||||
let y_aux = (point[0] - 2600000)/1000000;
|
let y_aux = (point[0] - 2600000) / 1000000;
|
||||||
let x_aux = (point[1] - 1200000)/1000000;
|
let x_aux = (point[1] - 1200000) / 1000000;
|
||||||
|
|
||||||
// calculate longitude and latitude in the unit 10000"
|
// calculate longitude and latitude in the unit 10000"
|
||||||
let lat = 16.9023892 +
|
let lat = 16.9023892 +
|
||||||
@ -38,7 +38,7 @@ function toWGS84(point) {
|
|||||||
lat = lat * 100 / 36;
|
lat = lat * 100 / 36;
|
||||||
lon = lon * 100 / 36;
|
lon = lon * 100 / 36;
|
||||||
|
|
||||||
return {lat: lat, lon: lon};
|
return { lat: lat, lon: lon };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,7 +47,7 @@ function toWGS84(point) {
|
|||||||
* @param {*} point Array of Swiss projection coordinates, position 0 is E and 1 is N.
|
* @param {*} point Array of Swiss projection coordinates, position 0 is E and 1 is N.
|
||||||
* @returns Track point xml node for gpx.
|
* @returns Track point xml node for gpx.
|
||||||
*/
|
*/
|
||||||
function toTrackPoint(point) {
|
function toTrackPoint(point) {
|
||||||
let wgs84Point = toWGS84(point);
|
let wgs84Point = toWGS84(point);
|
||||||
return `<trkpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}"/>`;
|
return `<trkpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}"/>`;
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@ function toWGS84(point) {
|
|||||||
*
|
*
|
||||||
* @returns Way point xml node for gpx.
|
* @returns Way point xml node for gpx.
|
||||||
*/
|
*/
|
||||||
function toWayPoint(point) {
|
function toWayPoint(point) {
|
||||||
let wgs84Point = toWGS84(point.geom.coordinates);
|
let wgs84Point = toWGS84(point.geom.coordinates);
|
||||||
return `
|
return `
|
||||||
<wpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}">
|
<wpt lat="${wgs84Point.lat}" lon="${wgs84Point.lon}">
|
||||||
@ -74,7 +74,9 @@ function toWGS84(point) {
|
|||||||
*/
|
*/
|
||||||
function trackTitle(geoJson) {
|
function trackTitle(geoJson) {
|
||||||
const route = geoJson.segments[0];
|
const route = geoJson.segments[0];
|
||||||
const book = geoJson.book_route_number ? `${geoJson.book_route_number} - ` : "";
|
const book = geoJson.book_route_number
|
||||||
|
? `${geoJson.book_route_number} - `
|
||||||
|
: "";
|
||||||
|
|
||||||
return `${book}${geoJson.title}`;
|
return `${book}${geoJson.title}`;
|
||||||
}
|
}
|
||||||
@ -86,16 +88,18 @@ function trackTitle(geoJson) {
|
|||||||
* @returns Simple gpx string.
|
* @returns Simple gpx string.
|
||||||
*/
|
*/
|
||||||
function toGpx(geoJson) {
|
function toGpx(geoJson) {
|
||||||
let trackSegments = geoJson.segments.map(segment => {
|
let trackSegments = geoJson.segments.map((segment) => {
|
||||||
return `<trkseg>
|
return `<trkseg>
|
||||||
${segment.geom.coordinates.map(toTrackPoint).join("")}
|
${segment.geom.coordinates.map(toTrackPoint).join("")}
|
||||||
</trkseg>`;
|
</trkseg>`;
|
||||||
}).join("");
|
}).join("");
|
||||||
|
|
||||||
let endPoint = geoJson.end_point ? toWayPoint(geoJson.end_point) : "";
|
let endPoint = geoJson.end_point ? toWayPoint(geoJson.end_point) : "";
|
||||||
let waypoints = geoJson.waypoints ? geoJson.waypoints.map(wp => {
|
let waypoints = geoJson.waypoints
|
||||||
|
? geoJson.waypoints.map((wp) => {
|
||||||
return toWayPoint(wp.reference_poi);
|
return toWayPoint(wp.reference_poi);
|
||||||
}).join("") : "";
|
}).join("")
|
||||||
|
: "";
|
||||||
|
|
||||||
const routeTitle = trackTitle(geoJson);
|
const routeTitle = trackTitle(geoJson);
|
||||||
|
|
||||||
@ -132,12 +136,12 @@ function listener(details) {
|
|||||||
let encoder = new TextEncoder();
|
let encoder = new TextEncoder();
|
||||||
|
|
||||||
let data = [];
|
let data = [];
|
||||||
filter.ondata = event => {
|
filter.ondata = (event) => {
|
||||||
data.push(event.data);
|
data.push(event.data);
|
||||||
};
|
};
|
||||||
|
|
||||||
filter.onstop = async event => {
|
filter.onstop = async (event) => {
|
||||||
let blob = new Blob(data, {type: 'text/html'});
|
let blob = new Blob(data, { type: "text/html" });
|
||||||
let buffer = await blob.arrayBuffer();
|
let buffer = await blob.arrayBuffer();
|
||||||
let str = decoder.decode(buffer);
|
let str = decoder.decode(buffer);
|
||||||
|
|
||||||
@ -148,7 +152,7 @@ function listener(details) {
|
|||||||
|
|
||||||
let geoJson = JSON.parse(str);
|
let geoJson = JSON.parse(str);
|
||||||
const routeTitle = trackTitle(geoJson);
|
const routeTitle = trackTitle(geoJson);
|
||||||
gpxTrack = {title: routeTitle, data: toGpx(geoJson)};
|
gpxTrack = { title: routeTitle, data: toGpx(geoJson) };
|
||||||
};
|
};
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
@ -177,19 +181,20 @@ function handleClick(tab) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let blob = new Blob([gpxTrack.data], {type: "application/gpx+xml"});
|
let blob = new Blob([gpxTrack.data], { type: "application/gpx+xml" });
|
||||||
let objectURL = URL.createObjectURL(blob);
|
let objectURL = URL.createObjectURL(blob);
|
||||||
|
|
||||||
let downloading = browser.downloads.download({
|
let downloading = browser.downloads.download({
|
||||||
url : objectURL,
|
url: objectURL,
|
||||||
filename : `${gpxTrack.title}.gpx`,
|
filename: `${gpxTrack.title}.gpx`,
|
||||||
saveAs: true,
|
saveAs: true,
|
||||||
conflictAction : 'uniquify'
|
conflictAction: "uniquify",
|
||||||
});
|
});
|
||||||
|
|
||||||
downloading.then(
|
downloading.then(
|
||||||
(id) => console.log(`Started downloading: ${id}`),
|
(id) => console.log(`Started downloading: ${id}`),
|
||||||
(error) => console.log(`Download failed: ${error}`));
|
(error) => console.log(`Download failed: ${error}`),
|
||||||
|
);
|
||||||
gpxTrack = null;
|
gpxTrack = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,7 +208,10 @@ function updateActiveTab(tabs) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let gettingActiveTab = browser.tabs.query({active: true, currentWindow: true});
|
let gettingActiveTab = browser.tabs.query({
|
||||||
|
active: true,
|
||||||
|
currentWindow: true,
|
||||||
|
});
|
||||||
gettingActiveTab.then(updateTab);
|
gettingActiveTab.then(updateTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,23 +222,27 @@ function updateIcon(tab) {
|
|||||||
const hasTrack = checkTrack(tab);
|
const hasTrack = checkTrack(tab);
|
||||||
|
|
||||||
browser.browserAction.setIcon({
|
browser.browserAction.setIcon({
|
||||||
path: hasTrack ? {
|
path: hasTrack
|
||||||
|
? {
|
||||||
48: "icons/map.png",
|
48: "icons/map.png",
|
||||||
} : {
|
}
|
||||||
|
: {
|
||||||
48: "icons/map-disabled.png",
|
48: "icons/map-disabled.png",
|
||||||
},
|
},
|
||||||
tabId: tab.id
|
tabId: tab.id,
|
||||||
});
|
});
|
||||||
browser.browserAction.setTitle({
|
browser.browserAction.setTitle({
|
||||||
title: hasTrack ? `Download track "${gpxTrack.title}"` : 'No track selected',
|
title: hasTrack
|
||||||
tabId: tab.id
|
? `Download track "${gpxTrack.title}"`
|
||||||
|
: "No track selected",
|
||||||
|
tabId: tab.id,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
browser.webRequest.onBeforeRequest.addListener(
|
browser.webRequest.onBeforeRequest.addListener(
|
||||||
listener,
|
listener,
|
||||||
{urls: ["https://www.sac-cas.ch/*[routeId]*"]},
|
{ urls: ["https://www.sac-cas.ch/*[routeId]*"] },
|
||||||
["blocking"]
|
["blocking"],
|
||||||
);
|
);
|
||||||
|
|
||||||
browser.browserAction.onClicked.addListener(handleClick);
|
browser.browserAction.onClicked.addListener(handleClick);
|
||||||
|
Loading…
Reference in New Issue
Block a user