Skip to content

Commit fd0e5b8

Browse files
committed
add custom mapviewer for sextant
1 parent 3de2c28 commit fd0e5b8

File tree

4 files changed

+202
-2
lines changed

4 files changed

+202
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
(function() {
2+
goog.provide('sxt_viewer_directive');
3+
4+
var module = angular.module('sxt_viewer_directive', []);
5+
6+
/**
7+
* @ngdoc directive
8+
* @name gn_viewer.directive:gnMainViewer
9+
* @deprecated Use gnRegionPicker instead
10+
*
11+
* @description
12+
*/
13+
module.directive('sxtMainViewer', [
14+
'gnMap',
15+
function(gnMap) {
16+
return {
17+
restrict: 'A',
18+
replace: true,
19+
scope: true,
20+
templateUrl: '../../catalog/views/sextant/mapviewer/mainviewer.html',
21+
compile: function compile(tElement, tAttrs, transclude) {
22+
return {
23+
pre: function preLink(scope, iElement, iAttrs, controller) {
24+
scope.map = scope.$eval(iAttrs['map']);
25+
26+
/** Define object to receive measure info */
27+
scope.measureObj = {};
28+
29+
/** Define vector layer used for drawing */
30+
scope.drawVector;
31+
32+
/** print definition */
33+
scope.activeTools = {};
34+
35+
scope.zoom = function(map, delta) {
36+
gnMap.zoom(map, delta);
37+
};
38+
scope.zoomToMaxExtent = function(map) {
39+
map.getView().setResolution(gnMapConfig.maxResolution);
40+
};
41+
42+
var div = document.createElement('div');
43+
div.className = 'overlay';
44+
var overlay = new ol.Overlay({
45+
element: div,
46+
positioning: 'bottom-left'
47+
});
48+
scope.map.addOverlay(overlay);
49+
50+
},
51+
post: function postLink(scope, iElement, iAttrs, controller) {
52+
//TODO: find another solution to render the map
53+
setTimeout(function() {
54+
scope.map.updateSize();
55+
}, 100);
56+
}
57+
};
58+
}
59+
};
60+
}]);
61+
})();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
<div class="wrapper" data-ng-controller="gnViewerController">
2+
3+
<div data-gn-alert-manager=""></div>
4+
<div id="map" ngeo-map="map" class="map"></div>
5+
<div gn-gfi="" map="map"></div>
6+
<div gn-localisation-input map="map"></div>
7+
8+
<!--Top right buttons - Tools-->
9+
<div class="tools" gi-btn-group gnv-close-panel data-ng-controller="toolsController">
10+
<button class="btn btn-default" ng-model="activeTools.layers" type="submit" rel="#layers" gi-btn gnv-tools-btn>
11+
<span class="fa fa-tasks"></span>
12+
<span role="tooltip" data-translate="">Layers</span>
13+
</button>
14+
<button class="btn btn-default" ng-model="activeTools.contexts" type="submit" rel="#contexts" gi-btn gnv-tools-btn>
15+
<span class="fa fa-book"></span>
16+
<span role="tooltip" data-translate="">Contexts</span>
17+
</button>
18+
<button class="btn btn-default" ng-model="activeTools.print" type="submit" rel="#print" gi-btn gnv-tools-btn>
19+
<span class="fa fa-print"></span>
20+
<span role="tooltip" data-translate="">Print</span>
21+
</button>
22+
<button gi-btn class="btn btn-default" type="submit" ng-model="mInteraction.active" rel="#measures" gnv-tools-btn>
23+
<span class="fa fa-expand"></span>
24+
<span role="tooltip" data-translate="">Measure</span>
25+
</button>
26+
<button gi-btn class="btn btn-default" type="submit" rel="#draw" ng-model="drawVector.inmap" gnv-tools-btn>
27+
<span class="fa fa-pencil"></span>
28+
<span role="tooltip" data-translate="">Annotations</span>
29+
</button>
30+
</div>
31+
<!--Bottom right buttons - Navigation-->
32+
<div class="tools control-tools">
33+
<button class="btn btn-default" type="submit" data-ng-click="zoom(map,1)">
34+
<span class="fa fa-plus"></span>
35+
<span role="tooltip" data-translate="">Zoom</span>
36+
</button>
37+
<button class="btn btn-default" type="submit" data-ng-click="zoom(map,-1)">
38+
<span class="fa fa-minus"></span>
39+
<span role="tooltip" data-translate="">ZoomOut</span>
40+
</button>
41+
<button class="btn btn-default" type="submit" data-ng-click="zoomToMaxExtent(map)">
42+
<span class="fa fa-map-marker"></span>
43+
<span role="tooltip" data-translate="">Localisation</span>
44+
</button>
45+
</div>
46+
47+
<div class="panel panel-default force-hide panel-tools" id="layers" gnv-layermanager-btn>
48+
49+
<div class="layers">
50+
<div class="panel-body">
51+
<button type="button" class="btn btn-default close">
52+
&times;
53+
</button>
54+
<h5 data-translate="">ThemeLayers</h5>
55+
</div>
56+
57+
<div gn-layermanager="" gn-layermanager-map="map"></div>
58+
59+
<div gn-baselayerswitcher="" gn-baselayerswitcher-map="map"></div>
60+
61+
</div>
62+
63+
<div class="panel-body">
64+
<button type="button" class="btn btn-default unfold">
65+
<span class="fa fa-chevron-down"></span>
66+
</button>
67+
<h5 data-translate="">AddALayer</h5>
68+
69+
<div class="btn-group flux">
70+
<button type="button" class="btn btn-default" data-translate="">LayerWMS</button>
71+
<button type="button" class="btn btn-default" data-translate="">LayerWMTS</button>
72+
<button type="button" class="btn btn-default" data-translate="">LayerKML</button>
73+
</div>
74+
75+
<div class="panel-carousel-window">
76+
<div class="panel-carousel-container">
77+
<div class="panel-carousel" gn-wms-import="wms" gn-wms-import-map="map"></div>
78+
<div class="panel-carousel" gn-wms-import="wmts" gn-wms-import-map="map"></div>
79+
<div class="panel-carousel" gn-kml-import="" gn-kml-import-map="map"></div>
80+
</div>
81+
</div>
82+
</div>
83+
</div>
84+
85+
<div class="panel panel-default force-hide panel-tools" id="contexts">
86+
87+
<div class="panel-body">
88+
<button type="button" class="btn btn-default close">
89+
&times;
90+
</button>
91+
<h5 data-translate="">MapContexts</h5>
92+
<div gn-ows-context="" map="map"></div>
93+
</div>
94+
</div>
95+
96+
<!--Measure Info Panel-->
97+
<div class="panel panel-default force-hide panel-tools" id="measures">
98+
<div class="panel-body panel-sm">
99+
<button type="button" class="btn btn-default close">
100+
&times;
101+
</button>
102+
<h5 data-translate="">Measures</h5>
103+
<div class="gn-measure-text">
104+
<div class="alert alert-warning hidden-print" translate>measure_instruction</div>
105+
<dl class="dl-horizontal">
106+
<dt>{{'Distance' | translate}}</dt>
107+
<dd>{{measureObj.distance | measure}}</dd>
108+
<dt>{{'Surface' | translate}}</dt>
109+
<dd>{{measureObj.surface | measure:'area':['km&sup2', ' m&sup2']}}</dd>
110+
</dl>
111+
</div>
112+
</div>
113+
</div>
114+
115+
<!--Draw Panel-->
116+
<div class="panel panel-default force-hide panel-tools" id="draw">
117+
<div class="panel-body">
118+
<button type="button" class="btn btn-default close">
119+
&times;
120+
</button>
121+
<h5 data-translate="">Annotations</h5>
122+
<div class="gn-draw-text" gn-draw="" map="map" vector="drawVector">
123+
</div>
124+
</div>
125+
</div>
126+
127+
<div class="panel panel-default force-hide panel-tools" id="print">
128+
129+
<div class="panel-body">
130+
<button type="button" class="btn btn-default close">
131+
&times;
132+
</button>
133+
<h5 data-translate="">Print</h5>
134+
<div gn-mapprint="" print-active="activeTools.print" map="map"></div>
135+
</div>
136+
</div>
137+
</div>

web-ui/src/main/resources/catalog/views/sextant/search.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
goog.require('gn_thesaurus');
88
goog.require('sxt_categorytree');
99
goog.require('sxt_panier_directive');
10+
goog.require('sxt_viewer_directive');
1011

1112
var module = angular.module('gn_search_sextant', [
1213
'gn_search',
1314
'gn_search_sextant_config',
1415
'sxt_panier_directive',
1516
'gn_thesaurus',
16-
'sxt_categorytree'
17+
'sxt_categorytree',
18+
'sxt_viewer_directive'
1719
]);
1820

1921
module.value('sxtGlobals', {});

web-ui/src/main/resources/catalog/views/sextant/templates/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
{{mainTabs.map.title}}
6868
<span class="badge" ng-if="mainTabs.map.titleInfo">{{mainTabs.map.titleInfo}}</span>
6969
</tab-heading>
70-
<div gn-main-viewer="" map="searchObj.viewerMap">
70+
<div sxt-main-viewer="" map="searchObj.viewerMap">
7171
</div>
7272
</tab>
7373
<tab ng-if="mainTabs.panier" select="displayPanierTab()" active="mainTabs.panier.active">

0 commit comments

Comments
 (0)