summaryrefslogtreecommitdiff
path: root/examples/cycleparkingheatmap.html
blob: 17b511665c06290158a5a481c796008f9ec1edc4 (plain)
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>