1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<!DOCTYPE html>
<html>
<head>
<title>Cycle Parking Heat Map</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="../src/leaflet-soton.css" />
<link rel="stylesheet" href="../resources/leaflet/dist/leaflet.css" />
<style>
body {
padding: 0;
margin: 0;
}
html, body, #map {
height: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<script src="../resources/leaflet/dist/leaflet.js"></script>
<script src="../resources/leaflet-heat/dist/leaflet-heat.js"></script>
<script src="../src/leaflet-soton.js"></script>
<script type="text/javascript">
LS.imagePath = '../resources/images/';
LS.dataPath = '../data.json';
var map = LS.map('map', {
indoor: false,
});
LS.getData(function(data) {
var heatmapData = [];
console.log(data);
data.bicycleParking.features.forEach(function(feature) {
var lat,
lon;
if (feature.geometry.type === "Point") {
lat = feature.geometry.coordinates[1];
lon = feature.geometry.coordinates[0];
} else if (feature.geometry.type === "Polygon") {
lat = feature.geometry.coordinates[0][0][1];
lon = feature.geometry.coordinates[0][0][0];
}
if ("capacity" in feature.properties) {
for (var i=0; i<feature.properties.capacity; i++) {
heatmapData.push([lat, lon]);
}
} else {
heatmapData.push([lat, lon]);
}
});
var heat = L.heatLayer(heatmapData, {
radius: 20,
blur: 5,
gradient: {
0.4: 'green',
0.65: 'lime',
1: 'green'
}
}).addTo(map);
});
</script>
</body>
</html>
|