diff options
Diffstat (limited to 'web/app')
-rw-r--r-- | web/app/view/GeofenceDialogController.js | 6 | ||||
-rw-r--r-- | web/app/view/GeofenceMap.js | 14 |
2 files changed, 17 insertions, 3 deletions
diff --git a/web/app/view/GeofenceDialogController.js b/web/app/view/GeofenceDialogController.js index c8d518514..b04935b9c 100644 --- a/web/app/view/GeofenceDialogController.js +++ b/web/app/view/GeofenceDialogController.js @@ -37,10 +37,14 @@ Ext.define('Traccar.view.GeofenceDialogController', { }, onAreaClick: function (button) { + var dialog, record; + dialog = button.up('window').down('form'); + record = dialog.getRecord(); Ext.create('Traccar.view.BaseWindow', { title: Strings.sharedArea, items: { - xtype: 'geofenceMapView' + xtype: 'geofenceMapView', + area: record.get('area') } }).show(); } diff --git a/web/app/view/GeofenceMap.js b/web/app/view/GeofenceMap.js index e8a4dc5de..165daf40d 100644 --- a/web/app/view/GeofenceMap.js +++ b/web/app/view/GeofenceMap.js @@ -19,7 +19,8 @@ Ext.define('Traccar.view.GeofenceMap', { xtype: 'geofenceMapView', requires: [ - 'Traccar.view.GeofenceMapController' + 'Traccar.view.GeofenceMapController', + 'Traccar.GeofenceConverter' ], controller: 'geofenceMap', @@ -50,12 +51,21 @@ Ext.define('Traccar.view.GeofenceMap', { }, initMap: function () { - var map, featureOverlay; + var map, featureOverlay, geometry; this.callParent(); map = this.map; this.features = new ol.Collection(); + if (this.area !== "") { + geometry = Traccar.GeofenceConverter.wktToGeometry(this.mapView, this.area); + this.features.push(new ol.Feature(geometry)); + if (geometry instanceof ol.geom.Circle) { + this.mapView.setCenter(geometry.getCenter()); + } else if (geometry instanceof ol.geom.Polygon) { + this.mapView.setCenter(geometry.getCoordinates()[0][0]); + } + } featureOverlay = new ol.layer.Vector({ source: new ol.source.Vector({ features: this.features |