<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" integrity="sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous">
<link type="text/css" rel="stylesheet" href="//cdn.leafletjs.com/leaflet-0.7.5/leaflet.css" />
<link type="text/css" rel="stylesheet" href="style.css" />
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="//cdn.leafletjs.com/leaflet-0.7.5/leaflet.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.14.3/ui-bootstrap-tpls.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/highcharts/4.1.9/highcharts.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/highcharts/4.1.9/themes/dark-unica.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<div ng-app="app" ng-controller="leaflet" leaflet></div>
</body>
</html>
angular.module('app', [
'ui.bootstrap'
])
angular.module('app').controller('leaflet', [
'$scope', '$uibModal',
function ($scope, $uibModal) {
$scope.openModal = function (event) {
$uibModal.open({
'template': '<div highchart></div>',
'controller': 'highchart',
'resolve': {
'data': function () {
return {
series: [{
name: "Hestavollane",
data: [0.2, 0.8, 0.8, 0.8, 1, 1.3, 1.5, 2.9, 1.9, 2.6, 1.6, 3, 4, 3.6, 4.5, 4.2, 4.5, 4.5, 4, 3.1, 2.7, 4, 2.7, 2.3, 2.3, 4.1, 7.7, 7.1, 5.6, 6.1, 5.8, 8.6, 7.2, 9, 10.9, 11.5, 11.6, 11.1, 12, 12.3, 10.7, 9.4, 9.8, 9.6, 9.8, 9.5, 8.5, 7.4, 7.6]
}, {
name: "Vik",
data: [0, 0, 0.6, 0.9, 0.8, 0.2, 0, 0, 0, 0.1, 0.6, 0.7, 0.8, 0.6, 0.2, 0, 0.1, 0.3, 0.3, 0, 0.1, 0, 0, 0, 0.2, 0.1, 0, 0.3, 0, 0.1, 0.2, 0.1, 0.3, 0.3, 0, 3.1, 3.1, 2.5, 1.5, 1.9, 2.1, 1, 2.3, 1.9, 1.2, 0.7, 1.3, 0.4, 0.3]
}]
}
}
}
})
}
$scope.$on('leaflet', function (event, leaflet) {
leaflet.setView([61.056944, 6.578056], 9)
new L.Marker([61.056944, 6.578056])
.on('click', $scope.openModal)
.addTo(leaflet)
})
}
])
angular.module('app').controller('highchart', [
'$scope', '$uibModalInstance', 'data',
function ($scope, $uibModalInstance, data) {
$scope.$uibModalInstance = $uibModalInstance
$scope.data = data
}
])
angular.module('app').directive('leaflet', [
function () {
return {
link: function (scope, element, attributes) {
scope.$broadcast('leaflet', new L.Map(element[0], {
'center': [0, 0],
'zoom': 0,
'layers': [
new L.tileLayer('http://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}.png', {
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, © <a href="http://cartodb.com/attributions">CartoDB</a>'
})
]
}))
}
}
}
])
angular.module('app').directive('highchart', [
'chart',
function (chart) {
return {
'link': function (scope, element, attributes) {
var data = angular.extend(scope.data, chart)
$(element[0]).highcharts(data)
}
}
}
])
angular.module('app').value('chart', {
chart: {
type: "spline"
},
title: {
text: "Wind speed during two days"
},
subtitle: {
text: "May 31 and and June 1, 2015 at two locations in Vik i Sogn, Norway"
},
xAxis: {
type: "datetime",
labels: {
overflow: "justify"
}
},
yAxis: {
title: {
text: "Wind speed (m/s)"
},
minorGridLineWidth: 0,
gridLineWidth: 0,
alternateGridColor: null,
plotBands: [{
from: 0.3,
to: 1.5,
color: "rgba(68, 170, 213, 0.1)",
label: {
text: "Light air",
style: {
color: "#606060"
}
}
}, {
from: 1.5,
to: 3.3,
color: "rgba(0, 0, 0, 0)",
label: {
text: "Light breeze",
style: {
color: "#606060"
}
}
}, {
from: 3.3,
to: 5.5,
color: "rgba(68, 170, 213, 0.1)",
label: {
text: "Gentle breeze",
style: {
color: "#606060"
}
}
}, {
from: 5.5,
to: 8,
color: "rgba(0, 0, 0, 0)",
label: {
text: "Moderate breeze",
style: {
color: "#606060"
}
}
}, {
from: 8,
to: 11,
color: "rgba(68, 170, 213, 0.1)",
label: {
text: "Fresh breeze",
style: {
color: "#606060"
}
}
}, {
from: 11,
to: 14,
color: "rgba(0, 0, 0, 0)",
label: {
text: "Strong breeze",
style: {
color: "#606060"
}
}
}, {
from: 14,
to: 15,
color: "rgba(68, 170, 213, 0.1)",
label: {
text: "High wind",
style: {
color: "#606060"
}
}
}]
},
tooltip: {
valueSuffix: " m/s"
},
plotOptions: {
spline: {
lineWidth: 4,
states: {
hover: {
lineWidth: 5
}
},
marker: {
enabled: false
},
pointInterval: 3600000,
pointStart: Date.UTC(2015, 4, 31, 0, 0, 0)
}
},
navigation: {
menuItemStyle: {
fontSize: "10px"
}
}
})
body, html, .leaflet-container {
height: 100%;
}