1 |
|
2 | goog.require('ol.Map');
|
3 | goog.require('ol.View');
|
4 | goog.require('ol.control');
|
5 | goog.require('ol.layer.Tile');
|
6 | goog.require('ol.math');
|
7 | goog.require('ol.proj');
|
8 | goog.require('ol.source.OSM');
|
9 |
|
10 | var projection = ol.proj.get('EPSG:3857');
|
11 | var view = new ol.View({
|
12 | center: [0, 0],
|
13 | projection: projection,
|
14 | extent: projection.getExtent(),
|
15 | zoom: 2
|
16 | });
|
17 | var map = new ol.Map({
|
18 | layers: [
|
19 | new ol.layer.Tile({
|
20 | source: new ol.source.OSM()
|
21 | })
|
22 | ],
|
23 | target: 'map',
|
24 | controls: ol.control.defaults({
|
25 | attributionOptions: {
|
26 | collapsible: false
|
27 | }
|
28 | }),
|
29 | view: view
|
30 | });
|
31 |
|
32 | function el(id) {
|
33 | return document.getElementById(id);
|
34 | }
|
35 |
|
36 |
|
37 | var gn = new GyroNorm();
|
38 |
|
39 | gn.init().then(function() {
|
40 | gn.start(function(event) {
|
41 | var center = view.getCenter();
|
42 | var resolution = view.getResolution();
|
43 | var alpha = ol.math.toRadians(event.do.beta);
|
44 | var beta = ol.math.toRadians(event.do.beta);
|
45 | var gamma = ol.math.toRadians(event.do.gamma);
|
46 |
|
47 | el('alpha').innerText = alpha + ' [rad]';
|
48 | el('beta').innerText = beta + ' [rad]';
|
49 | el('gamma').innerText = gamma + ' [rad]';
|
50 |
|
51 | center[0] -= resolution * gamma * 25;
|
52 | center[1] += resolution * beta * 25;
|
53 |
|
54 | view.setCenter(view.constrainCenter(center));
|
55 | });
|
56 | });
|