diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2015-10-03 13:39:53 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2015-10-03 13:39:53 +1300 |
commit | 001424d7ada69390fd7ebea8e585fb0408e147ac (patch) | |
tree | d4bac262bbb0cc2122626004b95eb2d57e089937 /web/app/view/map/MapController.js | |
parent | 00ebfd00f204bdfbd8e66254b79c7b8814d7ee3b (diff) | |
download | traccar-server-001424d7ada69390fd7ebea8e585fb0408e147ac.tar.gz traccar-server-001424d7ada69390fd7ebea8e585fb0408e147ac.tar.bz2 traccar-server-001424d7ada69390fd7ebea8e585fb0408e147ac.zip |
More clean up for web interface
Diffstat (limited to 'web/app/view/map/MapController.js')
-rw-r--r-- | web/app/view/map/MapController.js | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/web/app/view/map/MapController.js b/web/app/view/map/MapController.js deleted file mode 100644 index b0d8b8f39..000000000 --- a/web/app/view/map/MapController.js +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -Ext.define('Traccar.view.map.MapController', { - extend: 'Ext.app.ViewController', - alias: 'controller.map', - - config: { - listen: { - controller: { - '*': { - reportShow: 'reportShow', - reportClear: 'reportClear', - selectDevice: 'selectDevice', - selectReport: 'selectReport' - } - } - } - }, - - init: function() { - this.liveData = {}; - this.update(true); - }, - - update: function(first) { - Ext.Ajax.request({ - scope: this, - url: '/api/async', - params: { - first: first - }, - success: function(response) { - var data = Ext.decode(response.responseText).data; - - var i; - for (i = 0; i < data.length; i++) { - - var store = Ext.getStore('LatestPositions'); - - var found = store.query('deviceId', data[i].deviceId); - if (found.getCount() > 0) { - found.first().set(data[i]); - } else { - store.add(Ext.create('Traccar.model.Position', data[i])); - } - - var geometry = new ol.geom.Point(ol.proj.fromLonLat([ - data[i].longitude, - data[i].latitude - ])); - - if (data[i].deviceId in this.liveData) { - this.liveData[data[i].deviceId].setGeometry(geometry); - } else { - var style = this.getMarkerStyle(styles.mapLiveRadius, styles.mapLiveColor); - var marker = new ol.Feature({ - geometry: geometry, - originalStyle: style - }); - marker.setStyle(style); - this.getView().vectorSource.addFeature(marker); - this.liveData[data[i].deviceId] = marker; - } - } - - this.update(false); - }, - failure: function() { - // TODO: error - } - }); - }, - - getLineStyle: function() { - return new ol.style.Style({ - stroke: new ol.style.Stroke({ - color: styles.mapStrokeColor, - width: styles.mapRouteWidth - }) - }); - }, - - getMarkerStyle: function(radius, color) { - /*return new ol.style.Style({ - text: new ol.style.Text({ - text: '\uf041', - font: 'normal 32px FontAwesome', - textBaseline: 'Bottom', - fill: new ol.style.Fill({ - color: color - }), - stroke: new ol.style.Stroke({ - color: 'black', - width: 2 - }) - }) - });*/ - return new ol.style.Style({ - image: new ol.style.Circle({ - radius: radius, - fill: new ol.style.Fill({ - color: color - }), - stroke: new ol.style.Stroke({ - color: styles.mapStrokeColor, - width: styles.mapMarkerStroke - }) - }) - }); - }, - - reportShow: function() { - this.reportClear(); - - var vectorSource = this.getView().vectorSource; - - var data = Ext.getStore('Positions').getData(); - - var index; - var positions = []; - this.reportRoutePoints = {}; - - for (index = 0; index < data.getCount(); index++) { - var point = ol.proj.fromLonLat([ - data.getAt(index).data.longitude, - data.getAt(index).data.latitude - ]); - positions.push(point); - - var style = this.getMarkerStyle(styles.mapReportRadius, styles.mapReportColor); - var feature = new ol.Feature({ - geometry: new ol.geom.Point(positions[index]), - originalStyle: style - }); - feature.setStyle(style); - this.reportRoutePoints[data.getAt(index).get('id')] = feature; - } - - this.reportRoute = new ol.Feature({ - geometry: new ol.geom.LineString(positions) - }); - this.reportRoute.setStyle(this.getLineStyle()); - vectorSource.addFeature(this.reportRoute); - - for (var key in this.reportRoutePoints) { - if (this.reportRoutePoints.hasOwnProperty(key)) { - vectorSource.addFeature(this.reportRoutePoints[key]); - } - } - }, - - reportClear: function() { - var index; - var vectorSource = this.getView().vectorSource; - - if (this.reportRoute !== undefined) { - vectorSource.removeFeature(this.reportRoute); - this.reportRoute = undefined; - } - - if (this.reportRoutePoints !== undefined) { - for (var key in this.reportRoutePoints) { - if (this.reportRoutePoints.hasOwnProperty(key)) { - vectorSource.removeFeature(this.reportRoutePoints[key]); - } - } - this.reportRoutePoints = {}; - } - }, - - selectPosition: function(feature) { - if (this.currentFeature !== undefined) { - this.currentFeature.setStyle(this.currentFeature.get('originalStyle')); - } - - if (feature !== undefined) { - feature.setStyle(this.getMarkerStyle(styles.mapSelectRadius, styles.mapSelectColor)); - - var pan = ol.animation.pan({ - duration: styles.mapDelay, - source: this.getView().mapView.getCenter() - }); - this.getView().map.beforeRender(pan); - this.getView().mapView.setCenter(feature.getGeometry().getCoordinates()); - } - - this.currentFeature = feature; - }, - - selectDevice: function(device) { - this.selectPosition(this.liveData[device.get('id')]); - }, - - selectReport: function(position) { - if (this.reportRoutePoints[position.get('id')] !== undefined) { - this.selectPosition(this.reportRoutePoints[position.get('id')]); - } - } - -}); |