Skip to content

Commit

Permalink
add custom mapviewer for sextant
Browse files Browse the repository at this point in the history
  • Loading branch information
fgravin committed Jan 29, 2015
1 parent 3de2c28 commit fd0e5b8
Show file tree
Hide file tree
Showing 4 changed files with 202 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
(function() {
goog.provide('sxt_viewer_directive');

var module = angular.module('sxt_viewer_directive', []);

/**
* @ngdoc directive
* @name gn_viewer.directive:gnMainViewer
* @deprecated Use gnRegionPicker instead
*
* @description
*/
module.directive('sxtMainViewer', [
'gnMap',
function(gnMap) {
return {
restrict: 'A',
replace: true,
scope: true,
templateUrl: '../../catalog/views/sextant/mapviewer/mainviewer.html',
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) {
scope.map = scope.$eval(iAttrs['map']);

/** Define object to receive measure info */
scope.measureObj = {};

/** Define vector layer used for drawing */
scope.drawVector;

/** print definition */
scope.activeTools = {};

scope.zoom = function(map, delta) {
gnMap.zoom(map, delta);
};
scope.zoomToMaxExtent = function(map) {
map.getView().setResolution(gnMapConfig.maxResolution);
};

var div = document.createElement('div');
div.className = 'overlay';
var overlay = new ol.Overlay({
element: div,
positioning: 'bottom-left'
});
scope.map.addOverlay(overlay);

},
post: function postLink(scope, iElement, iAttrs, controller) {
//TODO: find another solution to render the map
setTimeout(function() {
scope.map.updateSize();
}, 100);
}
};
}
};
}]);
})();
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
<div class="wrapper" data-ng-controller="gnViewerController">

<div data-gn-alert-manager=""></div>
<div id="map" ngeo-map="map" class="map"></div>
<div gn-gfi="" map="map"></div>
<div gn-localisation-input map="map"></div>

<!--Top right buttons - Tools-->
<div class="tools" gi-btn-group gnv-close-panel data-ng-controller="toolsController">
<button class="btn btn-default" ng-model="activeTools.layers" type="submit" rel="#layers" gi-btn gnv-tools-btn>
<span class="fa fa-tasks"></span>
<span role="tooltip" data-translate="">Layers</span>
</button>
<button class="btn btn-default" ng-model="activeTools.contexts" type="submit" rel="#contexts" gi-btn gnv-tools-btn>
<span class="fa fa-book"></span>
<span role="tooltip" data-translate="">Contexts</span>
</button>
<button class="btn btn-default" ng-model="activeTools.print" type="submit" rel="#print" gi-btn gnv-tools-btn>
<span class="fa fa-print"></span>
<span role="tooltip" data-translate="">Print</span>
</button>
<button gi-btn class="btn btn-default" type="submit" ng-model="mInteraction.active" rel="#measures" gnv-tools-btn>
<span class="fa fa-expand"></span>
<span role="tooltip" data-translate="">Measure</span>
</button>
<button gi-btn class="btn btn-default" type="submit" rel="#draw" ng-model="drawVector.inmap" gnv-tools-btn>
<span class="fa fa-pencil"></span>
<span role="tooltip" data-translate="">Annotations</span>
</button>
</div>
<!--Bottom right buttons - Navigation-->
<div class="tools control-tools">
<button class="btn btn-default" type="submit" data-ng-click="zoom(map,1)">
<span class="fa fa-plus"></span>
<span role="tooltip" data-translate="">Zoom</span>
</button>
<button class="btn btn-default" type="submit" data-ng-click="zoom(map,-1)">
<span class="fa fa-minus"></span>
<span role="tooltip" data-translate="">ZoomOut</span>
</button>
<button class="btn btn-default" type="submit" data-ng-click="zoomToMaxExtent(map)">
<span class="fa fa-map-marker"></span>
<span role="tooltip" data-translate="">Localisation</span>
</button>
</div>

<div class="panel panel-default force-hide panel-tools" id="layers" gnv-layermanager-btn>

<div class="layers">
<div class="panel-body">
<button type="button" class="btn btn-default close">
&times;
</button>
<h5 data-translate="">ThemeLayers</h5>
</div>

<div gn-layermanager="" gn-layermanager-map="map"></div>

<div gn-baselayerswitcher="" gn-baselayerswitcher-map="map"></div>

</div>

<div class="panel-body">
<button type="button" class="btn btn-default unfold">
<span class="fa fa-chevron-down"></span>
</button>
<h5 data-translate="">AddALayer</h5>

<div class="btn-group flux">
<button type="button" class="btn btn-default" data-translate="">LayerWMS</button>
<button type="button" class="btn btn-default" data-translate="">LayerWMTS</button>
<button type="button" class="btn btn-default" data-translate="">LayerKML</button>
</div>

<div class="panel-carousel-window">
<div class="panel-carousel-container">
<div class="panel-carousel" gn-wms-import="wms" gn-wms-import-map="map"></div>
<div class="panel-carousel" gn-wms-import="wmts" gn-wms-import-map="map"></div>
<div class="panel-carousel" gn-kml-import="" gn-kml-import-map="map"></div>
</div>
</div>
</div>
</div>

<div class="panel panel-default force-hide panel-tools" id="contexts">

<div class="panel-body">
<button type="button" class="btn btn-default close">
&times;
</button>
<h5 data-translate="">MapContexts</h5>
<div gn-ows-context="" map="map"></div>
</div>
</div>

<!--Measure Info Panel-->
<div class="panel panel-default force-hide panel-tools" id="measures">
<div class="panel-body panel-sm">
<button type="button" class="btn btn-default close">
&times;
</button>
<h5 data-translate="">Measures</h5>
<div class="gn-measure-text">
<div class="alert alert-warning hidden-print" translate>measure_instruction</div>
<dl class="dl-horizontal">
<dt>{{'Distance' | translate}}</dt>
<dd>{{measureObj.distance | measure}}</dd>
<dt>{{'Surface' | translate}}</dt>
<dd>{{measureObj.surface | measure:'area':['km&sup2', ' m&sup2']}}</dd>
</dl>
</div>
</div>
</div>

<!--Draw Panel-->
<div class="panel panel-default force-hide panel-tools" id="draw">
<div class="panel-body">
<button type="button" class="btn btn-default close">
&times;
</button>
<h5 data-translate="">Annotations</h5>
<div class="gn-draw-text" gn-draw="" map="map" vector="drawVector">
</div>
</div>
</div>

<div class="panel panel-default force-hide panel-tools" id="print">

<div class="panel-body">
<button type="button" class="btn btn-default close">
&times;
</button>
<h5 data-translate="">Print</h5>
<div gn-mapprint="" print-active="activeTools.print" map="map"></div>
</div>
</div>
</div>
4 changes: 3 additions & 1 deletion web-ui/src/main/resources/catalog/views/sextant/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
goog.require('gn_thesaurus');
goog.require('sxt_categorytree');
goog.require('sxt_panier_directive');
goog.require('sxt_viewer_directive');

var module = angular.module('gn_search_sextant', [
'gn_search',
'gn_search_sextant_config',
'sxt_panier_directive',
'gn_thesaurus',
'sxt_categorytree'
'sxt_categorytree',
'sxt_viewer_directive'
]);

module.value('sxtGlobals', {});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
{{mainTabs.map.title}}
<span class="badge" ng-if="mainTabs.map.titleInfo">{{mainTabs.map.titleInfo}}</span>
</tab-heading>
<div gn-main-viewer="" map="searchObj.viewerMap">
<div sxt-main-viewer="" map="searchObj.viewerMap">
</div>
</tab>
<tab ng-if="mainTabs.panier" select="displayPanierTab()" active="mainTabs.panier.active">
Expand Down

0 comments on commit fd0e5b8

Please sign in to comment.