now preserves time information loaded in waypoints/tracks/routes
parent
7fe8a76898
commit
3e655feccd
|
@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
|||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [Unreleased]
|
||||
### Changed
|
||||
- keep time information in loaded tracks/routes/waypoints, written in saved files
|
||||
|
||||
## 0.0.2 – 2016-12-08
|
||||
### Added
|
||||
|
|
14
README.md
14
README.md
|
@ -1,8 +1,6 @@
|
|||
# GpxEdit owncloud/nextcloud application
|
||||
|
||||
If you want to help to translate this app in your language, take the english=>french files in "l10n" directory as examples.
|
||||
|
||||
Simple Owncloud/Nextcloud app to load, edit and save GPX file on an interactive map.
|
||||
Simple Owncloud/Nextcloud app to load, edit and save GPX files on an interactive map.
|
||||
You can load/save files from your Owncloud/Nextcloud file storage.
|
||||
GPX, KML, CSV (unicsv format) and geotagged JPG are supported for loading. JPG files will be loaded as waypoints.
|
||||
There is a file explorer inside the app interface to select a file to load and a folder to save what is currently on the map.
|
||||
|
@ -17,6 +15,7 @@ What's saved :
|
|||
- points
|
||||
- coordinates
|
||||
- elevation (just preserves loaded values)
|
||||
- time (just preserves loaded values)
|
||||
- waypoint
|
||||
- coordinates
|
||||
- name
|
||||
|
@ -24,9 +23,10 @@ What's saved :
|
|||
- description
|
||||
- symbol
|
||||
- elevation (just preserves loaded value)
|
||||
- time (just preserves loaded value)
|
||||
|
||||
**WARNING** GpxEdit does not load/save any time data, even if you loaded a gpx file which has time information. Keep that in mind if you overwrite a file.
|
||||
Elevation data is loaded and saved but every new data added by user actions in GpxEdit will have neither elevation nor time data.
|
||||
GpxEdit does load/save time data.
|
||||
Elevation data is loaded and saved but every new waypoint/track/trackpoint added by user actions in GpxEdit will have neither elevation nor time data.
|
||||
|
||||
Tracks are saved with one segment.
|
||||
|
||||
|
@ -41,7 +41,7 @@ GpxEdit :
|
|||
- works with shared files.
|
||||
- loads GPX, KML, unicsv CSV, geotagged JPG files
|
||||
- loads tracks, routes and waypoints
|
||||
- saves tracks and waypoints
|
||||
- saves tracks, routes and waypoints
|
||||
- supports waypoint symbols
|
||||
- uses [Leaflet.Draw](https://github.com/Leaflet/Leaflet.draw) amazing plugin
|
||||
- uses many other Leaflet plugins like Minimap, Sidebar2, MeasureControl, MousePositionControl
|
||||
|
@ -49,3 +49,5 @@ GpxEdit :
|
|||
- uses [JQuery File Tree](https://github.com/jqueryfiletree/jqueryfiletree) amazing file tree library
|
||||
|
||||
Any feedback will be appreciated.
|
||||
|
||||
If you want to help to translate this app in your language, take the english=>french files in "l10n" directory as examples.
|
||||
|
|
|
@ -5,9 +5,7 @@
|
|||
<description>
|
||||
# GpxEdit owncloud/nextcloud application
|
||||
|
||||
If you want to help to translate this app in your language, take the english=>french files in "l10n" directory as examples.
|
||||
|
||||
Simple Owncloud/Nextcloud app to load, edit and save GPX file on an interactive map.
|
||||
Simple Owncloud/Nextcloud app to load, edit and save GPX files on an interactive map.
|
||||
You can load/save files from your Owncloud/Nextcloud file storage.
|
||||
GPX, KML, CSV (unicsv format) and geotagged JPG are supported for loading. JPG files will be loaded as waypoints.
|
||||
There is a file explorer inside the app interface to select a file to load and a folder to save what is currently on the map.
|
||||
|
@ -30,8 +28,8 @@ What's saved :
|
|||
- symbol
|
||||
- elevation (just preserves loaded value)
|
||||
|
||||
**WARNING** GpxEdit does not load/save any time data, even if you loaded a gpx file which has time information. Keep that in mind if you overwrite a file.
|
||||
Elevation data is loaded and saved but every new data added by user actions in GpxEdit will have neither elevation nor time data.
|
||||
GpxEdit does load/save time data.
|
||||
Elevation data is loaded and saved but every new waypoint/track/trackpoint added by user actions in GpxEdit will have neither elevation nor time data.
|
||||
|
||||
Tracks are saved with one segment.
|
||||
|
||||
|
@ -46,7 +44,7 @@ GpxEdit :
|
|||
- works with shared files.
|
||||
- loads GPX, KML, unicsv CSV, geotagged JPG files
|
||||
- loads tracks, routes and waypoints
|
||||
- saves tracks and waypoints
|
||||
- saves tracks, routes and waypoints
|
||||
- supports waypoint symbols
|
||||
- uses [Leaflet.Draw](https://github.com/Leaflet/Leaflet.draw) amazing plugin
|
||||
- uses many other Leaflet plugins like Minimap, Sidebar2, MeasureControl, MousePositionControl
|
||||
|
@ -55,6 +53,8 @@ GpxEdit :
|
|||
|
||||
Any feedback will be appreciated.
|
||||
|
||||
If you want to help to translate this app in your language, take the english=>french files in "l10n" directory as examples.
|
||||
|
||||
</description>
|
||||
<licence>AGPL</licence>
|
||||
<summary>Simple GPX file editor</summary>
|
||||
|
|
|
@ -460,7 +460,14 @@ function onCreated(type, layer){
|
|||
|
||||
layer.gpxedit_id = gpxedit.id;
|
||||
layer.type = layerType;
|
||||
gpxedit.layersData[gpxedit.id] = {name:'', description:'', comment:'', symbol:'', layer: layer};
|
||||
gpxedit.layersData[gpxedit.id] = {
|
||||
name:'',
|
||||
description:'',
|
||||
comment:'',
|
||||
symbol:'',
|
||||
time: '',
|
||||
layer: layer
|
||||
};
|
||||
gpxedit.editableLayers.addLayer(layer);
|
||||
gpxedit.id++;
|
||||
return layer;
|
||||
|
@ -512,6 +519,7 @@ function generateGpx(){
|
|||
var name = gpxedit.layersData[id].name;
|
||||
var comment = gpxedit.layersData[id].comment;
|
||||
var description = gpxedit.layersData[id].description;
|
||||
var time = gpxedit.layersData[id].time;
|
||||
if (layer.type === 'marker'){
|
||||
var symbol = gpxedit.layersData[id].symbol;
|
||||
var lat = layer._latlng.lat;
|
||||
|
@ -536,6 +544,9 @@ function generateGpx(){
|
|||
if (description){
|
||||
gpxText = gpxText + ' <desc>'+description+'</desc>\n';
|
||||
}
|
||||
if (time){
|
||||
gpxText = gpxText + ' <time>'+time+'</time>\n';
|
||||
}
|
||||
gpxText = gpxText + ' </wpt>\n';
|
||||
}
|
||||
else if(layer.type === 'track'){
|
||||
|
@ -557,7 +568,11 @@ function generateGpx(){
|
|||
var lat = layer._latlngs[i].lat;
|
||||
var lng = layer._latlngs[i].lng;
|
||||
var alt = layer._latlngs[i].alt;
|
||||
var time = layer._latlngs[i].time;
|
||||
gpxText = gpxText + ' <trkpt lat="'+lat+'" lon="'+lng+'">\n';
|
||||
if (time !== undefined){
|
||||
gpxText = gpxText + ' <time>'+time+'</time>\n';
|
||||
}
|
||||
if (alt !== undefined){
|
||||
gpxText = gpxText + ' <ele>'+alt+'</ele>\n';
|
||||
}
|
||||
|
@ -583,7 +598,11 @@ function generateGpx(){
|
|||
var lat = layer._latlngs[i].lat;
|
||||
var lng = layer._latlngs[i].lng;
|
||||
var alt = layer._latlngs[i].alt;
|
||||
var time = layer._latlngs[i].time;
|
||||
gpxText = gpxText + ' <rtept lat="'+lat+'" lon="'+lng+'">\n';
|
||||
if (time !== undefined){
|
||||
gpxText = gpxText + ' <time>'+time+'</time>\n';
|
||||
}
|
||||
if (alt !== undefined){
|
||||
gpxText = gpxText + ' <ele>'+alt+'</ele>\n';
|
||||
}
|
||||
|
@ -597,7 +616,7 @@ function generateGpx(){
|
|||
}
|
||||
|
||||
// adds a marker and initialize its data
|
||||
function drawMarker(latlng, name, desc, cmt, sym){
|
||||
function drawMarker(latlng, name, desc, cmt, sym, time){
|
||||
var wst = $('#markerstyleselect').val();
|
||||
var tst = $('#tooltipstyleselect').val();
|
||||
var symboo = $('#symboloverwrite').is(':checked');
|
||||
|
@ -621,16 +640,22 @@ function drawMarker(latlng, name, desc, cmt, sym){
|
|||
gpxedit.layersData[layer.gpxedit_id].comment = cmt;
|
||||
gpxedit.layersData[layer.gpxedit_id].description = desc;
|
||||
gpxedit.layersData[layer.gpxedit_id].symbol = sym;
|
||||
gpxedit.layersData[layer.gpxedit_id].time = time;
|
||||
}
|
||||
|
||||
// adds a polyline and initialize its data
|
||||
function drawLine(latlngs, name, desc, cmt, gpxtype){
|
||||
function drawLine(latlngs, name, desc, cmt, gpxtype, times){
|
||||
var wst = $('#markerstyleselect').val();
|
||||
var tst = $('#tooltipstyleselect').val();
|
||||
var p = L.polyline(latlngs, {
|
||||
color: '#f357a1',
|
||||
weight: 7
|
||||
});
|
||||
if (times.length === p._latlngs.length){
|
||||
for (var i=0; i<times.length; i++){
|
||||
p._latlngs[i].time = times[i];
|
||||
}
|
||||
}
|
||||
var layer = onCreated(gpxtype, p);
|
||||
if (name !== ''){
|
||||
if (tst === 'p'){
|
||||
|
@ -657,11 +682,12 @@ function parseGpx(xml){
|
|||
var desc = $(this).find('desc').text();
|
||||
var sym = $(this).find('sym').text();
|
||||
var ele = $(this).find('ele').text();
|
||||
var time = $(this).find('time').text();
|
||||
if (ele !== ''){
|
||||
drawMarker([lat, lon, ele], name, desc, cmt, sym);
|
||||
drawMarker([lat, lon, ele], name, desc, cmt, sym, time);
|
||||
}
|
||||
else{
|
||||
drawMarker([lat, lon], name, desc, cmt, sym);
|
||||
drawMarker([lat, lon], name, desc, cmt, sym, time);
|
||||
}
|
||||
});
|
||||
dom.find('trk').each(function(){
|
||||
|
@ -669,11 +695,14 @@ function parseGpx(xml){
|
|||
var name = $(this).find('>name').text();
|
||||
var cmt = $(this).find('>cmt').text();
|
||||
var desc = $(this).find('>desc').text();
|
||||
var times = [];
|
||||
$(this).find('trkseg').each(function(){
|
||||
$(this).find('trkpt').each(function(){
|
||||
var lat = $(this).attr('lat');
|
||||
var lon = $(this).attr('lon');
|
||||
var ele = $(this).find('ele').text();
|
||||
var time = $(this).find('time').text();
|
||||
times.push(time);
|
||||
if (ele !== ''){
|
||||
latlngs.push([lat,lon,ele]);
|
||||
}
|
||||
|
@ -682,17 +711,20 @@ function parseGpx(xml){
|
|||
}
|
||||
});
|
||||
});
|
||||
drawLine(latlngs, name, desc, cmt, 'track');
|
||||
drawLine(latlngs, name, desc, cmt, 'track', times);
|
||||
});
|
||||
dom.find('rte').each(function(){
|
||||
var latlngs = [];
|
||||
var name = $(this).find('>name').text();
|
||||
var cmt = $(this).find('>cmt').text();
|
||||
var desc = $(this).find('>desc').text();
|
||||
var times = [];
|
||||
$(this).find('rtept').each(function(){
|
||||
var lat = $(this).attr('lat');
|
||||
var lon = $(this).attr('lon');
|
||||
var ele = $(this).find('ele').text();
|
||||
var time = $(this).find('time').text();
|
||||
times.push(time);
|
||||
if (ele !== ''){
|
||||
latlngs.push([lat,lon,ele]);
|
||||
}
|
||||
|
@ -700,7 +732,7 @@ function parseGpx(xml){
|
|||
latlngs.push([lat,lon]);
|
||||
}
|
||||
});
|
||||
drawLine(latlngs, name, desc, cmt, 'route');
|
||||
drawLine(latlngs, name, desc, cmt, 'route', times);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue