aboutsummaryrefslogtreecommitdiff
path: root/web/app/view/map/GeofenceMapController.js
diff options
context:
space:
mode:
authorAshutosh Bishnoi <mail2bishnoi@gmail.com>2020-11-10 13:02:20 +0530
committerAshutosh Bishnoi <mail2bishnoi@gmail.com>2020-11-10 13:02:20 +0530
commita948981184f4f2884b7a35b67b2389ddcd1f52a8 (patch)
tree9187834b5246734da8549735f64d2e5546c60e1e /web/app/view/map/GeofenceMapController.js
parent5a116350b3e402ef123a75451737c268a9ebddff (diff)
parent1af1545dc7ba3cfdf73a58031b37bea0ecff2e54 (diff)
downloadtrackermap-web-a948981184f4f2884b7a35b67b2389ddcd1f52a8.tar.gz
trackermap-web-a948981184f4f2884b7a35b67b2389ddcd1f52a8.tar.bz2
trackermap-web-a948981184f4f2884b7a35b67b2389ddcd1f52a8.zip
Resolving conflicts with master
Diffstat (limited to 'web/app/view/map/GeofenceMapController.js')
-rw-r--r--web/app/view/map/GeofenceMapController.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/web/app/view/map/GeofenceMapController.js b/web/app/view/map/GeofenceMapController.js
index f075ac93..31ab586c 100644
--- a/web/app/view/map/GeofenceMapController.js
+++ b/web/app/view/map/GeofenceMapController.js
@@ -33,6 +33,32 @@ Ext.define('Traccar.view.map.GeofenceMapController', {
}
},
+ onFileChange: function (fileField) {
+ var reader, view = this.getView();
+ if (fileField.fileInputEl.dom.files.length > 0) {
+ reader = new FileReader();
+ reader.onload = function () {
+ var parser, xml, segment, projection, points = [];
+ parser = new DOMParser();
+ xml = parser.parseFromString(reader.result, 'text/xml');
+ segment = xml.getElementsByTagName('trkseg')[0];
+ projection = view.mapView.getProjection();
+ Array.from(segment.getElementsByTagName('trkpt')).forEach(function (point) {
+ var lat, lon;
+ lat = Number(point.getAttribute('lat'));
+ lon = Number(point.getAttribute('lon'));
+ points.push(ol.proj.transform([lon, lat], 'EPSG:4326', projection));
+ });
+ view.getFeatures().clear();
+ view.getFeatures().push(new ol.Feature(new ol.geom.LineString(points)));
+ };
+ reader.onerror = function (event) {
+ Traccar.app.showError(event.target.error);
+ };
+ reader.readAsText(fileField.fileInputEl.dom.files[0]);
+ }
+ },
+
onSaveClick: function (button) {
var geometry, projection;
if (this.getView().getFeatures().getLength() > 0) {