Compare commits

..

No commits in common. "master" and "privacy" have entirely different histories.

50 changed files with 984 additions and 1072 deletions

View file

@ -1,19 +0,0 @@
# https://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4
quote_type = double
[*.html]
indent_size = 2
[*.svg]
indent_style = tab
indent_size = unset

View file

@ -1,8 +1,8 @@
# BlokLocaties Op Kaart Met Aanduidende Pins # Blokmap
A useful map that lists all the public study locations in Ghent. A useful map that lists all the public study locations in Ghent.
Data is managed in a separate project, [Blokdata](https://github.com/ZeusWPI/Blokdata). We usually use data from [Stad Gent](https://stad.gent/studenten/studeren/bloklocaties) and emails sent by people..
## Development ## Development
@ -11,3 +11,5 @@ You can easily run the site locally by spawning a simple static file server in t
``` ```
(cd src/; python3 -m http.server) (cd src/; python3 -m http.server)
``` ```
You can also validate the JSON with `(cd src/; python -m json.tool data.json > /dev/null)`. If there are no errors, there will be no output.

View file

@ -13,6 +13,9 @@ echo "-> Pulling latest release"
# Apparently, some systems put "up to date", while others put "up-to-date" # Apparently, some systems put "up to date", while others put "up-to-date"
git pull | grep 'Already up[- ]to[- ]date.' && echo "No updates, exiting..." && exit 20 git pull | grep 'Already up[- ]to[- ]date.' && echo "No updates, exiting..." && exit 20
echo "-> Checking validity of data.json"
python -m json.tool src/data.json > /dev/null
# Create release dir and copy sources to that dir # Create release dir and copy sources to that dir
echo "-> This release will be stored in $release_dir" echo "-> This release will be stored in $release_dir"

View file

@ -1,523 +0,0 @@
/* required styles */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-map-pane svg,
.leaflet-map-pane canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
position: absolute;
left: 0;
top: 0;
}
.leaflet-container {
overflow: hidden;
-ms-touch-action: none;
touch-action: none;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-user-drag: none;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
image-rendering: -webkit-optimize-contrast;
}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
width: 1600px;
height: 1600px;
-webkit-transform-origin: 0 0;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
display: block;
}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg,
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer {
max-width: none !important;
}
.leaflet-tile {
filter: inherit;
visibility: hidden;
}
.leaflet-tile-loaded {
visibility: inherit;
}
.leaflet-zoom-box {
width: 0;
height: 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
z-index: 800;
}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
-moz-user-select: none;
}
.leaflet-pane { z-index: 400; }
.leaflet-tile-pane { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane { z-index: 500; }
.leaflet-marker-pane { z-index: 600; }
.leaflet-popup-pane { z-index: 700; }
.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg { z-index: 200; }
.leaflet-vml-shape {
width: 1px;
height: 1px;
}
.lvml {
behavior: url(#default#VML);
display: inline-block;
position: absolute;
}
/* control positioning */
.leaflet-control {
position: relative;
z-index: 800;
pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
position: absolute;
z-index: 1000;
pointer-events: none;
}
.leaflet-top {
top: 0;
}
.leaflet-right {
right: 0;
}
.leaflet-bottom {
bottom: 0;
}
.leaflet-left {
left: 0;
}
.leaflet-control {
float: left;
clear: both;
}
.leaflet-right .leaflet-control {
float: right;
}
.leaflet-top .leaflet-control {
margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
margin-left: 10px;
}
.leaflet-right .leaflet-control {
margin-right: 10px;
}
/* zoom and fade animations */
.leaflet-fade-anim .leaflet-tile {
will-change: opacity;
}
.leaflet-fade-anim .leaflet-popup {
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
opacity: 1;
}
.leaflet-zoom-animated {
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
-o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
visibility: hidden;
}
/* cursors */
.leaflet-interactive {
cursor: pointer;
}
.leaflet-grab {
cursor: -webkit-grab;
cursor: -moz-grab;
}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
cursor: crosshair;
}
.leaflet-popup-pane,
.leaflet-control {
cursor: auto;
}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
cursor: move;
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
}
/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
pointer-events: none;
}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive {
pointer-events: auto;
}
/* visual tweaks */
.leaflet-container {
background: #ddd;
outline: 0;
}
.leaflet-container a {
color: #0078A8;
}
.leaflet-container a.leaflet-active {
outline: 2px solid orange;
}
.leaflet-zoom-box {
border: 2px dotted #38f;
background: rgba(255,255,255,0.5);
}
/* general typography */
.leaflet-container {
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
/* general toolbar styles */
.leaflet-bar {
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
border-radius: 4px;
}
.leaflet-bar a,
.leaflet-bar a:hover {
background-color: #fff;
border-bottom: 1px solid #ccc;
width: 26px;
height: 26px;
line-height: 26px;
display: block;
text-align: center;
text-decoration: none;
color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;
}
.leaflet-bar a:hover {
background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
cursor: default;
background-color: #f4f4f4;
color: #bbb;
}
.leaflet-touch .leaflet-bar a {
width: 30px;
height: 30px;
line-height: 30px;
}
/* zoom control */
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
font: bold 18px 'Lucida Console', Monaco, monospace;
text-indent: 1px;
}
.leaflet-control-zoom-out {
font-size: 20px;
}
.leaflet-touch .leaflet-control-zoom-in {
font-size: 22px;
}
.leaflet-touch .leaflet-control-zoom-out {
font-size: 24px;
}
/* layers control */
.leaflet-control-layers {
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
background: #fff;
border-radius: 5px;
}
.leaflet-control-layers-toggle {
background-image: url(images/layers.png);
width: 36px;
height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
background-image: url(images/layers-2x.png);
background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
width: 44px;
height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
display: block;
position: relative;
}
.leaflet-control-layers-expanded {
padding: 6px 10px 6px 6px;
color: #333;
background: #fff;
}
.leaflet-control-layers-scrollbar {
overflow-y: scroll;
padding-right: 5px;
}
.leaflet-control-layers-selector {
margin-top: 2px;
position: relative;
top: 1px;
}
.leaflet-control-layers label {
display: block;
}
.leaflet-control-layers-separator {
height: 0;
border-top: 1px solid #ddd;
margin: 5px -10px 5px -6px;
}
/* attribution and scale controls */
.leaflet-container .leaflet-control-attribution {
background: #fff;
background: rgba(255, 255, 255, 0.7);
margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
padding: 0 5px;
color: #333;
}
.leaflet-control-attribution a {
text-decoration: none;
}
.leaflet-control-attribution a:hover {
text-decoration: underline;
}
.leaflet-container .leaflet-control-attribution,
.leaflet-container .leaflet-control-scale {
font-size: 11px;
}
.leaflet-left .leaflet-control-scale {
margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
margin-bottom: 5px;
}
.leaflet-control-scale-line {
border: 2px solid #777;
border-top: none;
line-height: 1.1;
padding: 2px 5px 1px;
font-size: 11px;
white-space: nowrap;
overflow: hidden;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: #fff;
background: rgba(255, 255, 255, 0.5);
}
.leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777;
border-bottom: none;
margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
border: 2px solid rgba(0,0,0,0.2);
background-clip: padding-box;
}
/* popup */
.leaflet-popup {
position: absolute;
text-align: center;
}
.leaflet-popup-content-wrapper {
padding: 1px;
text-align: left;
border-radius: 12px;
}
.leaflet-popup-content {
margin: 13px 19px;
line-height: 1.4;
}
.leaflet-popup-content p {
margin: 18px 0;
}
.leaflet-popup-tip-container {
margin: 0 auto;
width: 40px;
height: 20px;
position: relative;
overflow: hidden;
}
.leaflet-popup-tip {
width: 17px;
height: 17px;
padding: 1px;
margin: -10px auto 0;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
background: white;
color: #333;
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}
.leaflet-container a.leaflet-popup-close-button {
position: absolute;
top: 0;
right: 0;
padding: 4px 4px 0 0;
border: none;
text-align: center;
width: 18px;
height: 14px;
font: 16px/14px Tahoma, Verdana, sans-serif;
color: #c3c3c3;
text-decoration: none;
font-weight: bold;
background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover {
color: #999;
}
.leaflet-popup-scrolled {
overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
width: 24px;
margin: 0 auto;
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-popup-tip-container {
margin-top: -1px;
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
border: 1px solid #999;
}
/* div icon */
.leaflet-div-icon {
background: #fff;
border: 1px solid #666;
}

View file

@ -3,17 +3,6 @@ html, body {
padding: 0px; padding: 0px;
width: 100%; width: 100%;
height: 100%; height: 100%;
font-family: sans-serif;
}
.notice {
padding: 0.5em;
background: #fff;
color: #000;
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
}
.leaflet-top.leaflet-left {
z-index: 1001;
} }
#map { #map {
@ -29,8 +18,7 @@ html, body {
.leaflet-popup-content-wrapper { .leaflet-popup-content-wrapper {
width: 600px; width: 600px;
max-height: 400px; max-height: 400px;
overflow-y: auto; overflow-y:auto
overflow-wrap: anywhere;
} }
.leaflet-popup-content { .leaflet-popup-content {
@ -47,20 +35,12 @@ h4 {
margin-bottom: 5px; margin-bottom: 5px;
} }
.location, .period {
margin-bottom: 3px;
}
table { table {
padding-bottom: 10px; padding-bottom: 10px;
border-spacing: 0; border-spacing: 0;
width: 100% width: 100%
} }
td {
white-space: pre-line;
}
.desktop tr td { .desktop tr td {
padding-right: 5px; padding-right: 5px;
width: 75; width: 75;
@ -81,46 +61,25 @@ td {
font: 14px/16px Arial, Helvetica, sans-serif; font: 14px/16px Arial, Helvetica, sans-serif;
background: white; background: white;
background: rgba(255,255,255,0.0); background: rgba(255,255,255,0.0);
text-align: right;
} }
.author-icon { #zeus {
display: block; padding-left: 10px;
margin-left: 10px;
} }
.share { #GSR {
background-color: rgba(255, 255, 255, 0.7); float: right;
padding-right: 5px;
margin-left: 10px;
}
.share img {
vertical-align: middle;
margin-left: -10px;
}
.share a {
text-decoration: none;
}
.share a:hover {
text-decoration: underline;
}
a.img-and-text-link:hover {
text-decoration: none;
}
a.img-and-text-link:hover span {
text-decoration: underline;
} }
.legend { .legend {
height: 77px; height: 52px;
width: 130px; width: 130px;
background-color: #fff; background-color: #fff;
box-shadow: 0 1px 5px rgba(0,0,0,0.65); box-shadow: 0 1px 5px rgba(0,0,0,0.65);
} }
.holiday-legend { .holiday-legend {
height: 72px;
width: 145px; width: 145px;
background-color: #fff; background-color: #fff;
box-shadow: 0 1px 5px rgba(0,0,0,0.65); box-shadow: 0 1px 5px rgba(0,0,0,0.65);
@ -160,8 +119,18 @@ a.img-and-text-link:hover span {
width: 213px; width: 213px;
} }
.location, .period { h3, .text {
margin-bottom: 8px; max-width: 150px;
}
}
@media screen and (max-width: 800px) {
.info {
max-width: 90px;s
}
#zeus {
width: 75px;
} }
} }
@ -170,24 +139,3 @@ a.img-and-text-link:hover span {
max-height: 150px; max-height: 150px;
} }
} }
@media screen and (min-width: 300px) {
.notice {
max-width: calc(100vw - 150px);
}
}
@media screen and (min-width: 800px) {
.author-icon {
display: inline;
}
.notice {
max-width: calc(100vw - 250px);
}
}
@media (min-width: 800px) and (min-height: 500px) {
.notice {
padding: 1em 1.5em;
}
}

746
src/data.json Normal file
View file

@ -0,0 +1,746 @@
[
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 3.724770, 51.045507 ]
},
"properties": {
"name": "Faculteit Letteren en Wijsbegeerte, faculteitsbibliotheek, vleugels Magnel & Loveling",
"address": "Rozier 44",
"capacity": 998,
"period": { "start": "03/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "9u - 20u",
"tuesday": "9u - 20u",
"wednesday": "9u - 20u",
"thursday": "9u - 20u",
"friday": "9u - 17u",
"saturday": false,
"sunday": false
},
"extra": "<a href='https://www.ugent.be/lw/nl/diensten/bibliotheek'> Bekijk de website </a>. Vleugel Magnel bevat 660 werkplekken. De vleugel Loveling bevat 338 werkplekken.",
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 3.724090, 51.051192 ]
},
"properties": {
"name": "Faculteit recht en criminologie",
"address": "Universiteitstraat 4, verdieping 1",
"capacity": 324,
"period": { "start": "06/01/2020", "end": "30/01/2020" },
"hours": {
"monday": "8u30 - 22u",
"tuesday": "8u30 - 22u",
"wednesday": "8u30 - 22u",
"thursday": "8u30 - 22u",
"friday": "8u30 - 16u30",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor iedereen. <a href=\"http://www.ugent.be/re/nl/diensten/bibliotheek\">Bekijk de website</a> <i>Gesloten op weekends.</i>" ,
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 3.70700, 51.053446 ]
},
"properties": {
"name": "Faculteit Bio-Ingenieurswetenschappen, Resto Agora. (gelijkvloers gebouw E)",
"address": "Coupure 653",
"capacity": 400,
"period": { "start": "06/12/2019", "end": "31/01/2020" },
"hours": {
"monday": "9u - 19u",
"tuesday": "9u - 19u",
"wednesday": "9u - 19u",
"thursday": "9u - 19u",
"friday": "9u - 19u",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten. Ook bib toegankelijk. <a href=\"http://lib.ugent.be/en/libraries/ALLW\">Ga naar de website</a>. Gesloten van 23/12 tot 03/01 en tijdens weekends.",
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.7014217, 51.04866]
},
"properties": {
"name": "Faculteit Psychologie en Pedagogische Wetenschappen",
"address": "Henri Dunantlaan 2",
"capacity": 132,
"period": { "start": "06/12/2019", "end": "31/01/2020" },
"hours": {
"monday": "8u30 - 19u",
"tuesday": "8u30 - 19u",
"wednesday": "8u30 - 19u",
"thursday": "8u30 - 19u",
"friday": "8u30 - 15u",
"saturday": false,
"sunday": false
},
"extra": "Gesloten tijdens het weekend.</br> <a href='https://www.ugent.be/pp/nl/diensten/faculteitsbibliotheek'>https://www.ugent.be/pp/nl/diensten/faculteitsbibliotheek</a></br><a href='https://lib.ugent.be/nl/libraries/PPW'>https://lib.ugent.be/nl/libraries/PPW</a></br><a href='https://www.facebook.com/BibFPPW'>https://www.facebook.com/BibFPPW</a>",
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.7245747, 51.0517789]
},
"properties": {
"name": "Faculteit Politieke en Sociale Wetenschappen",
"address": "Paddenhoek 3, 2de verdiep lokaal 007",
"capacity": 60,
"period": { "start": "02/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "9u - 19u",
"tuesday": "9u - 19u",
"wednesday": "9u - 19u",
"thursday": "9u - 19u",
"friday": "9u - 19u",
"saturday": false,
"sunday": false
},
"extra": "Enkel voor studenten van de UGent. Niet drinken en eten in het lokaal.</br><i>60 plaatsen waarvan 20 plaatsen met pc.</i> <a href='http://www.ugent.be/ps/nl/diensten/pc-knooppunt/pc-klas'>Bekijk de website </a>.",
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.712859, 51.026039]
},
"properties": {
"name": "Faculteit Wetenschappen, Resto S5",
"address": "Krijgslaan 281 Gebouw S5",
"capacity": 400,
"period": { "start": "16/12/2019", "end": "31/01/2020" },
"hours": {
"monday": "15u - 22u",
"tuesday": "15u - 22u",
"wednesday": "15u - 22u",
"thursday": "15u - 22u",
"friday": "15u - 22u",
"saturday": "8u30 - 22u",
"sunday": "8u30 - 22u"
},
"extra": "<strong>Tijdens weekend enkel na reservatie week op voorhand:</strong> iedere zondag om 19u30 op <a href=\"http://dsa.ugent.be/blok/\">deze website</a>. Tijdens de week enkel voor UGent studenten, tijdens het weekend voor alle studenten. Doorheen de week van 8u30 tot 15u open als resto.",
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.727952, 51.044599]
},
"properties": {
"name": "Blok@Therminal",
"address": "Hoveniersberg 24",
"capacity": 300,
"period": { "start": "16/12/2019", "end": "31/01/2020" },
"hours": {
"monday": "8u30 - 24u",
"tuesday": "8u30 - 24u",
"wednesday": "8u30 - 24u",
"thursday": "8u30 - 24u",
"friday": "8u30 - 24u",
"saturday": "8u30 - 24u",
"sunday": "8u30 - 24u"
},
"extra": "<strong>Enkel na registratie week op voorhand:</strong> iedere zondag om 19u op <a href=\"http://dsa.ugent.be/blok/\">deze website</a>.",
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.728294, 51.039980]
},
"properties": {
"name": "Studentenrestaurant Kantienberg",
"address": "Stalhof 45",
"capacity": 300,
"period": { "start": "11/12/2020", "end": "26/01/2020" },
"hours": {
"monday": "8u30 - 22u",
"tuesday": "8u30 - 22u",
"wednesday": "8u30 - 22u",
"thursday": "8u30 - 22u",
"friday": "8u30 - 22u",
"saturday": "8u30 - 22u",
"sunday": "8u30 - 22u"
},
"extra": "<strong>Enkel na registratie week op voorhand:</strong> iedere zondag om 19u op <a href=\"http://dsa.ugent.be/blok/\">deze website</a>. Enkel open tijdens de kerstvakantie en de weekends. Tijdens de week enkel UGent studenten, tijdens weekends ook andere Gentse studenten.",
"type": "UGent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.703135, 51.031663]
},
"properties": {
"name": "Bib Schoonmeersen",
"address": "Openleercentrum campus Schoonmeersen, Vaerwyckweg 1",
"capacity": 444,
"period": { "start": "02/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 21u45",
"tuesday": "8u - 21u45",
"wednesday": "8u - 21u45",
"thursday": "8u - 21u45",
"friday": "8u - 16u45",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten.</br><a href=\"https://www.facebook.com/ByBSchoonmeersen\">Bekijk hier de facebookpagina</a>.",
"type": "hogent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.724287, 51.036624]
},
"properties": {
"name": "BYTES & BOOKS LEDEGANCK",
"address": "K.L. Ledeganckstraat 8",
"capacity": 110,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u15 - 17u30",
"tuesday": "8u15 - 17u30",
"wednesday": "8u15 - 17u30",
"thursday": "8u15 - 17u30",
"friday": "8u15 - 17u30",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten.</br><a href=\"https://www.facebook.com/LeercentrumLerarenopleidingLedeganck\">Bekijk de website</a>",
"type": "hogent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.726827, 51.019702]
},
"properties": {
"name": "BYTES & BOOKS VESALIUS",
"address": "Keramiekstraat 80",
"capacity": 58,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u15 - 17u",
"tuesday": "8u15 - 17u",
"wednesday": "8u15 - 17u",
"thursday": "8u15 - 17u",
"friday": "8u15 - 16u",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten. <a href=\"https://www.facebook.com/BYBVesalius\">Website</a>",
"type": "hogent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.71691, 51.04393]
},
"properties": {
"name": "Kunstenbibliotheek",
"address": "Godshuizenlaan 2A (bij STAM)",
"capacity": 80,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "9u - 18u",
"tuesday": "9u - 18u",
"wednesday": "9u - 18u",
"thursday": "9u - 22u",
"friday": "9u - 16u",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten.</br><a href=\"https://www.facebook.com/kunstenbibliotheek\">Bekijk de website</a>",
"type": "hogent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.715416, 51.042241]
},
"properties": {
"name": "BYTES & BOOKS MERCATOR",
"address": "Henleykaai 84",
"capacity": 50,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 21u45",
"tuesday": "8u - 21u45",
"wednesday": "8u - 21u45",
"thursday": "8u - 21u45",
"friday": "8u - 16u45",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten.",
"type": "hogent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.786580, 51.014401]
},
"properties": {
"name": "BYTES & BOOKS MELLE",
"address": "Brusselsesteenweg 161",
"capacity": 50,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 17u",
"tuesday": "8u - 17u",
"wednesday": "8u - 17u",
"thursday": "8u - 17u",
"friday": "8u - 16u",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten.",
"type": "hogent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.728505, 51.040832]
},
"properties": {
"name": "Mediatheek campus Kantienberg",
"address": "Voetweg 66",
"capacity": 190,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 18u",
"tuesday": "8u - 18u",
"wednesday": "8u - 18u",
"thursday": "8u - 18u",
"friday": "8u - 16u",
"saturday": false,
"sunday": false
},
"extra": "40 van de 190 plaatsen zijn stille plekken.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.728505, 51.040832]
},
"properties": {
"name": "De Kantiene",
"address": "Voetweg 66",
"capacity": 400,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 21u",
"tuesday": "8u - 21u",
"wednesday": "8u - 21u",
"thursday": "8u - 21u",
"friday": "8u - 19u30",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor alle Gentse studenten. Geen parkeermogelijkheden op het terrein. Stilte is niet gegarandeerd. Eters krijgen voorrang. Zoals overal houden jullie de ruimte proper. Eters krijgen voorrang.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.725, 51.041703]
},
"properties": {
"name": "Mediatheek campus Kattenberg",
"address": "Kattenberg 9",
"capacity": 40,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 18u",
"tuesday": "8u - 18u",
"wednesday": "8u - 18u",
"thursday": "8u - 18u",
"friday": "8u - 16u",
"saturday": false,
"sunday": false
},
"extra": "Enkel toegankelijk voor studenten van de Arteveldehogeschool.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.724520, 51.041703]
},
"properties": {
"name": "Ontspanningsruimtes campus Kattenberg",
"address": "Kattenberg 9",
"capacity": 80,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u30 - 18u30",
"tuesday": "8u30 - 18u30",
"wednesday": "8u30 - 18u30",
"thursday": "8u30 - 18u30",
"friday": "8u30 - 18u30",
"saturday": false,
"sunday": false
},
"extra": "Enkel toegankelijk voor studenten van de Arteveldehogeschool.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.668704, 51.087336]
},
"properties": {
"name": "Mediatheek campus Mariakerke",
"address": "Industrieweg 232, 9030 Mariakerke",
"capacity": 40,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u30 - 13u</br>13u30 - 17u",
"tuesday": "8u30 - 13u</br>13u30 - 17u",
"wednesday": "8u30 - 13u</br>13u30 - 17u",
"thursday": "8u30 - 13u</br>13u30 - 17u",
"friday": "8u30 - 13u</br>13u30 - 15u30",
"saturday": false,
"sunday": false
},
"extra": "Enkel toegankelijk voor studenten van de Arteveldehogeschool.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.737994, 51.042897]
},
"properties": {
"name": "Ontspanningsruimte campus BPS",
"address": "Brusselsepoortstraat 93",
"capacity": 90,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 18u30",
"tuesday": "8u - 18u30",
"wednesday": "8u - 18u30",
"thursday": "8u - 18u30",
"friday": "8u - 18u30",
"saturday": false,
"sunday": false
},
"extra": "Enkel toegankelijk voor studenten van de Arteveldehogeschool.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.735499, 51.049960]
},
"properties": {
"name": "Mediatheek campus Sint-Annaplein",
"address": "Sint-Annaplein 31",
"capacity": 40,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u45 - 17u30",
"tuesday": "8u45 - 17u30",
"wednesday": "8u45 - 17u30",
"thursday": "8u45 - 17u30",
"friday": "8u45 - 17u30",
"saturday": false,
"sunday": false
},
"extra": "Enkel toegankelijk voor studenten van de Arteveldehogeschool.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.730262, 51.036897]
},
"properties": {
"name": "Ontspanningsruimte campus Stropkaai",
"address": "Stropkaai 14",
"capacity": 35,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 18u30",
"tuesday": "8u - 18u30",
"wednesday": "8u - 18u30",
"thursday": "8u - 18u30",
"friday": "8u - 18u30",
"saturday": false,
"sunday": false
},
"extra": "Enkel toegankelijk voor studenten van de Arteveldehogeschool.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.731638, 51.041816]
},
"properties": {
"name": "Ontspanningsruimtes campus Leeuwstraat",
"address": "Leeuwstraat 1",
"capacity": 90,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u - 18u30",
"tuesday": "8u - 18u30",
"wednesday": "8u - 18u30",
"thursday": "8u - 18u30",
"friday": "8u - 18u30",
"saturday": false,
"sunday": false
},
"extra": "Enkel toegankelijk voor studenten van de Arteveldehogeschool.",
"type": "Arteveldehogeschool"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 3.708502, 51.060961 ]
},
"properties": {
"name": "Bibliotheek Odisee",
"address": "Gebr. Desmetstraat 1",
"capacity": 80,
"period": { "start": "06/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "8u30 - 21u",
"tuesday": "8u30 - 21u",
"wednesday": "8u30 - 21u",
"thursday": "8u30 - 21u",
"friday": "8u30 - 16u30",
"saturday": false,
"sunday": false
},
"extra": "Gesloten op feestdagen en brugdagen.",
"type": "Odisee"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 3.728544, 51.051602 ]
},
"properties": {
"name": "Bibliotheek",
"address": "Reep 1",
"capacity": 25,
"period": { "start": "07/01/2020", "end": "31/01/2020" },
"hours": {
"monday": "10u - 18u",
"tuesday": "10u - 18u",
"wednesday": "10u - 18u",
"thursday": "10u - 18u",
"friday": "10u - 18u",
"saturday": false,
"sunday": false
},
"extra": "Toegankelijk voor iedereen. <a href=\"http://www.vlerick.com/library\">Ga naar de website</a>. Gesloten op feestdagen en brugdagen.",
"type": "vlerick"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.726730, 51.042146]
},
"properties": {
"name": "Sint-Pietersabdij Monnikenzolder",
"address": "Sint-Pietersplein 9",
"capacity": 60,
"period": { "start": "18/12/2019", "end": "26/01/2020" },
"hours": {
"monday": false,
"tuesday": "10u - 18u",
"wednesday": "10u - 18u",
"thursday": "10u - 18u",
"friday": "10u - 18u",
"saturday": "10u - 18u",
"sunday": "10u - 18u"
},
"extra": "Gesloten op 23,24 en 31/12 en op 1/01",
"type": "Stad Gent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.728892, 51.049027]
},
"properties": {
"name": "De Krook",
"address": "Miriam Makebaplein 1",
"capacity": 260,
"period": { "start": false, "end": false },
"hours": {
"monday": "10u - 19u",
"tuesday": "10u - 19u",
"wednesday": "10u - 19u",
"thursday": "10u - 21u",
"friday": "10u - 19u",
"saturday": "10u - 19u",
"sunday": false
},
"extra": "200 plaatsen in de lees- en studiezaal op 3e verdiep.</br> 3x 20 stille werkplekken op 1e, 2e en 3e verdiep aan de kant Platteberg. </br><strong>Respecteer de voorbehouden plaatsen voor het raadplegen van de collectie. In de Kinder- en Jongerenbibliotheek (-1 en -2) zijn er geen studieplekken.</strong></br><a href=\"http://studieplekken.dekrook.be\">Bekijk studieplaatsen</a>. ",
"type": "Stad Gent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.72234, 51.04744]
},
"properties": {
"name": "Rijksarchief Gent",
"address": "Bagattenstraat 43",
"capacity": 40,
"period": { "start": false, "end": false},
"hours": {
"monday": false,
"tuesday": "9u - 16u30",
"wednesday": "9u - 16u30",
"thursday": "9u - 16u30",
"friday": "9u - 16u30",
"saturday": false,
"sunday": false
},
"extra": "40 plaatsen voor studenten, geen Wi-Fi. <a href=\"http://arch.arch.be/\">Meer info</a>.",
"type": "Stad Gent"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.727145, 51.056998]
},
"properties": {
"name": "Bond Moyson Historische kelder",
"address": "Vrijdagsmarkt 10",
"capacity": 20,
"period": { "start": "19/08/2018", "end": "30/08/2019" },
"hours": {
"monday": "9u - 16u30",
"tuesday": "9u - 16u30",
"wednesday": "9u - 16u30",
"thursday": "9u - 16u30",
"friday": "9u - 12u30",
"saturday": false,
"sunday": false
},
"extra": "Reserveren per sessie op <a href=\"http://www.supersaas.be/schedule/Bond_Moyson/samen_studeren_bij_bond_moyson\">deze website</a>.",
"type": "Andere"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [3.72101,51.03710]
},
"properties": {
"name": "Nachtuil",
"address": "ICC Gent, Kleine Casinozaal",
"capacity": 20,
"period": { "start": "16/12/2019", "end": "07/01/2020" },
"hours": {
"monday": "19u30 - 8u",
"tuesday": "19u30 - 8u",
"wednesday": "19u30 - 8u",
"thursday": "19u30 - 8u",
"friday": "19u30 - 8u",
"saturday": "19u30 - 8u",
"sunday": "19u30 - 8u"
},
"extra": "<a href=\"https://www.facebook.com/Nachtuilgent/\">deze website</a>",
"type": "Andere"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ 3.7192127, 51.0554202]
},
"properties": {
"name": "OVERKOP",
"address": "Drabstraat 18",
"capacity": 20,
"period": { "start": "30/12/2019", "end": "24/01/2020" },
"hours": {
"monday": "14u - 20u",
"tuesday": "14u - 20u",
"wednesday": "14u - 20u",
"thursday": "14u - 20u",
"friday": "14u - 20u",
"saturday": false,
"sunday": false
},
"extra": "Koffie, thee, water. Breakroom met pooltafel, kicker keuken, ...",
"type": "Andere"
}
}
]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -1,140 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="175.49457"
id="svg2"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="Logo BEI por Hernando.svg">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective9738"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath3180">
<path
d="m 596.741,190.075 149.223,0 0,64.79 -149.223,0 0,-64.79"
id="path3182" />
</clipPath>
<inkscape:perspective
id="perspective12948"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective8202"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="71.569388"
inkscape:cy="-45.087756"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="968"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Capa 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-309.85919,-343.20843)">
<g
id="g2010"
transform="matrix(7.4723057,0,0,-7.4723057,642.24229,518.703)">
<path
d="m 0,0 c 4.977,0 9.049,4.077 9.049,9.049 l 0,5.389 c 0,4.973 -4.072,9.048 -9.049,9.048 l -35.433,0 c -4.973,0 -9.049,-4.075 -9.049,-9.048 l 0,-5.389 C -44.482,4.077 -40.406,0 -35.433,0"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path2012" />
</g>
<g
id="g2014"
transform="matrix(7.4723057,0,0,-7.4723057,518.90441,451.07859)">
<path
d="m 0,0 0,5.389 c 0,4.072 3.314,7.32 7.32,7.32 l 9.187,0 c 4.007,0 7.253,-3.248 7.253,-7.32 L 23.76,0 c 0,-4.005 -3.246,-7.32 -7.253,-7.32 l -20.239,0 C -1.451,-5.664 0,-3.036 0,0"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path2016" />
</g>
<g
id="g2018"
transform="matrix(7.4723057,0,0,-7.4723057,430.12595,472.2626)">
<path
d="m 0,0 -3.043,0 -0.55,2.56 C -3.938,4.354 -4.285,6.565 -4.354,7.393 -4.423,6.565 -4.77,4.354 -5.179,2.56 L -5.734,0 l -2.968,0 -2.767,11.748 3.317,0 0.343,-2.004 c 0.276,-1.66 0.556,-3.659 0.695,-5.044 0.136,1.385 0.481,3.384 0.896,5.044 l 0.412,2.004 2.972,0 0.413,-2.004 c 0.348,-1.66 0.693,-3.659 0.833,-5.044 0.136,1.385 0.482,3.384 0.757,5.044 l 0.278,2.004 3.313,0"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path2020" />
</g>
<g
id="g2022"
transform="matrix(7.4723057,0,0,-7.4723057,472.9572,401.52225)">
<path
d="m 0,0 c -0.968,0 -1.727,0.553 -1.727,1.451 0,0.899 0.759,1.45 1.727,1.45 1.036,0 1.796,-0.551 1.796,-1.45 C 1.796,0.553 1.036,0 0,0 m -1.521,-0.968 3.0401,0 0,-8.4984 -3.0401,0 0,8.4984 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path2024" />
</g>
<g
id="g2026"
transform="matrix(7.4723057,0,0,-7.4723057,574.10981,405.16126)">
<path
d="m 0,0 0,-2.618 6.22,0 0,-2.767 -6.22,0 0,-3.593 -3.247,0 0,11.748 10.156,0 0,-2.77"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path2028" />
</g>
<g
id="g2030"
transform="matrix(7.4723057,0,0,-7.4723057,651.02973,401.52225)">
<path
d="m 0,0 c -0.97,0 -1.727,0.553 -1.727,1.451 0,0.899 0.757,1.45 1.727,1.45 1.035,0 1.797,-0.551 1.797,-1.45 C 1.797,0.553 1.035,0 0,0 m -1.521,-0.968 3.0371,0 0,-8.4984 -3.0371,0 0,8.4984 z"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path2032" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg version="1.1" id="Layer_1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="483.2226563" height="551.4306641"
viewBox="0 0 483.2226563 551.4306641" overflow="visible" enable-background="new 0 0 483.2226563 551.4306641"
xml:space="preserve">
<path fill-rule="evenodd" clip-rule="evenodd" fill="#000000" d="M161.9882813,98.1240234
c24.9628906-2.3046875,44.3574219-23.8110352,44.3574219-48.9658203C206.3457031,22.0830078,184.2626953,0,157.1875,0
s-49.1572266,22.0830078-49.1572266,49.1582031c0,8.2568359,2.3037109,16.7055664,6.1445313,23.8105469l17.515625,246.4667969
l180.3964844,0.0488281l73.9912109,173.3652344l97.1445313-38.0976563l-15.0429688-35.8203125l-54.3662109,19.625
l-71.5908203-165.2802734l-167.7294922,1.1269531l-2.3027344-31.2128906l121.4228516,0.0483398v-46.1831055l-126.0546875-0.0493164
L161.9882813,98.1240234z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#000000" d="M343.4199219,451.5908203
c-30.4472656,60.1875-94.1748047,99.8398438-162.1503906,99.8398438C81.4296875,551.4306641,0,470.0009766,0,370.1611328
c0-70.1005859,42.4853516-135.2436523,105.8818359-164.1210938l4.1025391,53.5375977
c-37.4970703,23.628418-60.6123047,66.262207-60.6123047,110.9506836c0,72.4267578,59.0712891,131.4970703,131.4970703,131.4970703
c66.2617188,0,122.7646484-50.8515625,130.4697266-116.0869141L343.4199219,451.5908203z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="63" height="20" version="1.1" xmlns="http://www.w3.org/2000/svg">
<rect width="63" height="20" rx="4" ry="4" fill="#1877f2"/>
<path d="m18.018 10.034c0-3.0635-2.4839-5.5474-5.5474-5.5474-3.0635 0-5.5474 2.4839-5.5474 5.5474 0 2.7686 2.0283 5.0637 4.6807 5.4803v-3.8764h-1.4089v-1.6039h1.4089v-1.2225c0-1.3901 0.82848-2.1586 2.0954-2.1586 0.60693 0 1.2419 0.10847 1.2419 0.10847v1.3652h-0.69976c-0.68884 0-0.90415 0.4275-0.90415 0.86672v1.0407h1.5384l-0.24573 1.6039h-1.2927v3.8764c2.6524-0.41582 4.6807-2.7109 4.6807-5.4804" fill="#fff" />
<text x="23" y="14" fill="#fff" font-family="Roboto" font-size="11.5px" font-weight="bold">Share</text>
</svg>

After

Width:  |  Height:  |  Size: 705 B

View file

@ -1,61 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="20"
height="20"
version="1.1"
id="svg8"
sodipodi:docname="facebook.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1043"
id="namedview10"
showgrid="false"
inkscape:zoom="22.627417"
inkscape:cx="9.2776978"
inkscape:cy="-0.76716337"
inkscape:window-x="0"
inkscape:window-y="37"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<path
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:18.33872604;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers"
d="M 11.571808,19.876973 C 11.059776,19.957939 10.534798,20 10,20 9.470853,20 8.9513195,19.958841 8.4444262,19.879533 -16.009211,-2.1035465 38.618255,-2.3039341 11.571808,19.877009 Z"
id="path821"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscc" />
<path
d="M 20,10.001126 C 20,4.4780969 15.522407,0 10,0 4.4775931,0 0,4.4780969 0,10.001126 c 0,4.991368 3.6563075,9.129087 8.4376465,9.880155 V 12.892716 H 5.8978981 v -2.89159 H 8.4376465 V 7.7971424 c 0,-2.5061407 1.4934564,-3.8916303 3.7772645,-3.8916303 1.094081,0 2.238707,0.195555 2.238707,0.195555 v 2.4612498 h -1.26142 c -1.241735,0 -1.629862,0.7707181 -1.629862,1.5625655 v 1.8762246 h 2.773191 l -0.442965,2.891591 h -2.330281 v 6.988565 c 4.781339,-0.749661 8.437647,-4.887345 8.437647,-9.880336"
id="path4"
style="fill:#1877f2;fill-opacity:1;stroke-width:1.80274773"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 KiB

After

Width:  |  Height:  |  Size: 350 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -1,11 +1,11 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="nl"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Bloklocaties in Vlaanderen</title> <title>Bloklocaties in Vlaanderen</title>
<meta name="apple-itunes-app" content="app-id=602640924"> <meta name="apple-itunes-app" content="app-id=602640924">
<meta name="google-play-app" content="app-id=be.ugent.zeus.hydra"> <meta name="google-play-app" content="app-id=be.ugent.zeus.hydra">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta property="og:site_name" content="Zeus WPI"> <meta property="og:site_name" content="Zeus WPI">
<meta property="og:type" content="article"> <meta property="og:type" content="article">
@ -20,26 +20,23 @@
<meta name="twitter:description" content="Heb je nood aan een plek om te blokken? Zeus en de Gentse Studentenraad maakten een overzicht van alle beschikbare bloklocaties op één kaart."> <meta name="twitter:description" content="Heb je nood aan een plek om te blokken? Zeus en de Gentse Studentenraad maakten een overzicht van alle beschikbare bloklocaties op één kaart.">
<meta name="twitter:image" content="https://blok.ugent.be/img/share_square.png"> <meta name="twitter:image" content="https://blok.ugent.be/img/share_square.png">
<link rel="stylesheet" href="css/leaflet-1.0.0.css"> <link rel="stylesheet" href="css/leaflet-1.6.0.css">
<link rel="stylesheet" href="css/map.css"> <link rel="stylesheet" href="css/map.css">
<script type="text/javascript" src="js/leaflet-1.0.0.js"></script> <script type="text/javascript" src="js/leaflet-1.6.0.js"></script>
<script type="text/javascript" src="js/jquery-1.11.0.js"></script> <script type="text/javascript" src="js/jquery-1.11.0.js"></script>
<script type="text/javascript" src="js/handlebars-2.0.0.js"></script> <script type="text/javascript" src="js/handlebars-2.0.0.js"></script>
<script type="text/javascript" src="js/map.js"></script> <script type="text/javascript" src="js/map.js"></script>
</head> </head>
<body> <body>
<div id="map"></div> <div id="map"></div>
<script id="popup-template" type="text/x-handlebars-template"> <script id="popup-template" type="text/x-handlebars-template">
<div id="resto-popup"> <div id="resto-popup">
<h3>{{name}} ({{capacity}} pl.)</h3> <h3>{{name}} ({{capacity}} pl.)</h3>
{{#if wheelchair}}<img src="img/Wheelchair_symbol.svg" class="wheelchair" style="width:30px;height:30px;">{{/if}}
{{#if wifi}}<img src="img/Logo_WiFi.svg" class="wifi" style="width:40px;height:20px;">{{/if}}
<img src="img/{{type}}.png" class="type"> <img src="img/{{type}}.png" class="type">
<div class="location">Locatie: {{address}}</div> <div class="text">Locatie: {{address}}<br />
<div class="period">{{#if period.start}} {{#if period.start}}
Periode: {{date period.start}} tot {{date period.end}} Van {{period.start}} tot {{period.end}}
{{else}} {{else}}
Open gedurende het hele jaar. Open gedurende het hele jaar.
{{/if}} {{/if}}
@ -54,56 +51,56 @@
<td>Vrijdag</td> <td>Vrijdag</td>
<td>Zaterdag</td> <td>Zaterdag</td>
<td>Zondag</td> <td>Zondag</td>
</tr><tr> </tr>
<td>{{#if hours.monday}}{{hours.monday}}{{else}}Gesloten{{/if}}</td> <tr>
<td>{{#if hours.tuesday}}{{hours.tuesday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.monday}}{{{hours.monday}}}{{else}}Gesloten{{/if}}</td>
<td>{{#if hours.wednesday}}{{hours.wednesday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.tuesday}}{{{hours.tuesday}}}{{else}}Gesloten{{/if}}</td>
<td>{{#if hours.thursday}}{{hours.thursday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.wednesday}}{{{hours.wednesday}}}{{else}}Gesloten{{/if}}</td>
<td>{{#if hours.friday}}{{hours.friday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.thursday}}{{{hours.thursday}}}{{else}}Gesloten{{/if}}</td>
<td>{{#if hours.saturday}}{{hours.saturday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.friday}}{{{hours.friday}}}{{else}}Gesloten{{/if}}</td>
<td>{{#if hours.sunday}}{{hours.sunday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.saturday}}{{{hours.saturday}}}{{else}}Gesloten{{/if}}</td>
<td>{{#if hours.sunday}}{{{hours.sunday}}}{{else}}Gesloten{{/if}}</td>
</tr> </tr>
</table> </table>
<table class="mobile"> <table class="mobile">
<tr> <tr>
<td>Maandag</td> <td>Maandag</td>
<td>{{#if hours.monday}}{{hours.monday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.monday}}{{{hours.monday}}}{{else}}Gesloten{{/if}}</td>
</tr><tr> </tr>
<tr>
<td>Dinsdag</td> <td>Dinsdag</td>
<td>{{#if hours.tuesday}}{{hours.tuesday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.tuesday}}{{{hours.tuesday}}}{{else}}Gesloten{{/if}}</td>
</tr><tr> </tr>
<tr>
<td>Woensdag</td> <td>Woensdag</td>
<td>{{#if hours.wednesday}}{{hours.wednesday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.wednesday}}{{{hours.wednesday}}}{{else}}Gesloten{{/if}}</td>
</tr><tr> </tr>
<tr>
<td>Donderdag</td> <td>Donderdag</td>
<td>{{#if hours.thursday}}{{hours.thursday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.thursday}}{{{hours.thursday}}}{{else}}Gesloten{{/if}}</td>
</tr><tr> </tr><tr>
<td>Vrijdag</td> <td>Vrijdag</td>
<td>{{#if hours.friday}}{{hours.friday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.friday}}{{{hours.friday}}}{{else}}Gesloten{{/if}}</td>
</tr><tr> </tr>
<tr>
<td>Zaterdag</td> <td>Zaterdag</td>
<td>{{#if hours.saturday}}{{hours.saturday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.saturday}}{{{hours.saturday}}}{{else}}Gesloten{{/if}}</td>
</tr><tr> </tr>
<tr>
<td>Zondag</td> <td>Zondag</td>
<td>{{#if hours.sunday}}{{hours.sunday}}{{else}}Gesloten{{/if}}</td> <td>{{#if hours.sunday}}{{{hours.sunday}}}{{else}}Gesloten{{/if}}</td>
</tr> </tr>
</table> </table>
{{#if extra}}{{{extra}}}{{/if}} {{#if extra}}{{{extra}}}{{/if}}
</div> </div>
</script> </script>
<script id="info-template" type="text/x-handlebars-template"> <script id="info-template" type="text/x-handlebars-template">
<a href="https://zeus.gent/" class="author-icon"><img src="img/zeus.png" alt="Zeus WPI"></a> <a href="http://zeus.ugent.be/"><img id="zeus" src="img/zeus.png"></a>
<a href="https://gentsestudentenraad.be/" class="author-icon"><img src="img/GSR.png" alt="Gentse Studentenraad"></a> <a href="https://gentsestudentenraad.be/"><img id="GSR" src="img/GSR.png"></a>
</script> </script>
<script id="share-template" type="text/x-handlebars-template"> <script id="share-template" type="text/x-handlebars-template">
<div class="share"> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fblok.ugent.be%2F"><img src="img/facebook-share.svg" alt="Deel op Facebook"></a>
<a href="https://www.facebook.com/Blokmap-Vlaanderen-105861927804347/" class="img-and-text-link"><img src="img/facebook.svg" alt=""> <span>Facebookpagina</span></a> |
<a href="https://forms.gle/H67tFQp54udB9cyR7">Locatie melden</a>
</div>
</script> </script>
<script id="legend-template" type="text/x-handlebars-template"> <script id="legend-template" type="text/x-handlebars-template">
<div style="padding-top: 5px;"> <div style="padding-top: 5px;">
<div style="width: 125px; height: 18px; padding-top: 5px; padding-left: 5px;"> <div style="width: 125px; height: 18px; padding-top: 5px; padding-left: 5px;">
@ -114,27 +111,23 @@
<div style="height: 10px; width: 10px; background: rgb(36, 126, 202); margin-top: 1px; margin-left: 5px;"></div> <div style="height: 10px; width: 10px; background: rgb(36, 126, 202); margin-top: 1px; margin-left: 5px;"></div>
<span style="position: absolute; left: 25px; top: 30px;">Enkel week</span> <span style="position: absolute; left: 25px; top: 30px;">Enkel week</span>
</div> </div>
<div style="width: 125px; height: 18px; padding-top: 5px; padding-left: 5px;">
<div style="height: 10px; width: 10px; background: rgb(120,120,120); margin-top: 1px; margin-left: 5px;"></div>
<span style="position: absolute; left: 25px; top: 52px;">Opent binnenkort</span>
</div>
<div style="width: 140px; height: 18px; padding-top: 5px; padding-left: 5px;" class="holiday"> <div style="width: 140px; height: 18px; padding-top: 5px; padding-left: 5px;" class="holiday">
<div style="height: 10px; width: 10px; background: rgb(121, 230, 121); margin-top: 0px; margin-left: 5px;"></div> <div style="height: 10px; width: 10px; background: rgb(121, 230, 121); margin-top: 0px; margin-left: 5px;"></div>
<span style="position: absolute; left: 25px; top: 75px;">Tijdens kerstvakantie</span> <span style="position: absolute; left: 25px; top: 53px;">Tijdens kerstvakantie</span>
</div> </div>
</div> </div>
</script> </script>
<!-- Google Analytics SDK --> <!-- Google Analytics SDK -->
<script> <script>
(function(i,s,o,g,r,a,m){i["GoogleAnalyticsObject"]=r;i[r]=i[r]||function(){ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,"script","//www.google-analytics.com/analytics.js","ga"); })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-25444917-8', 'auto');
ga('send', 'pageview');
ga("create", "UA-25444917-8", "auto");
ga('set', 'anonymizeIp', true);
ga("send", "pageview");
</script> </script>
</body> </body>
</html> </html>

File diff suppressed because one or more lines are too long

View file

@ -1,39 +1,23 @@
$(document).ready(function() { $(document).ready(function() {
Handlebars.registerHelper("date", function (ddmyyyy) { /* change image path */
return ddmyyyy.replace(/-/g, "/"); L.Icon.Default.imagePath = 'img/';
});
var popuptemplate = Handlebars.compile($('#popup-template').html());
L.Icon.Default.imagePath = "img";
var popuptemplate = Handlebars.compile($("#popup-template").html());
var BlueIcon = L.Icon.Default.extend({});
var RedIcon = L.Icon.Default.extend({ var RedIcon = L.Icon.Default.extend({
options: { options: {
iconUrl: "img/red-marker.png" iconUrl: 'red-marker.png'
} }
}); });
var ChristmasIcon = L.Icon.Default.extend({ var ChristmasIcon = L.Icon.Default.extend({
options: { options: {
iconUrl: "img/christmas-marker.png" iconUrl: 'christmas-marker.png'
} }
}); });
var GreyIcon = L.Icon.Default.extend({
options: {
iconUrl: "img/grey-marker.png"
}
});
var blueIcon = new BlueIcon();
var redIcon = new RedIcon(); var redIcon = new RedIcon();
var BlueIcon = L.Icon.Default.extend({});
var blueIcon = new BlueIcon();
var christmasIcon = new ChristmasIcon(); var christmasIcon = new ChristmasIcon();
var greyIcon = new GreyIcon(); var christmasHoliday = Date.now() < new Date("2016-01-04").getTime();
var now = new Date();
var christmasSeason =
now.getTime() > new Date(now.getFullYear() + "-12-20").getTime() ||
now.getTime() < new Date(now.getFullYear() + "-01-04").getTime();
function onEachFeature(feature, layer) { function onEachFeature(feature, layer) {
if (feature.properties) { if (feature.properties) {
@ -44,39 +28,25 @@ $(document).ready(function() {
} }
function pointToLayer(feature, latlng) { function pointToLayer(feature, latlng) {
var icon = redIcon; var marker = new HoverMarker(latlng, { icon: redIcon, riseOnHover: true});
var iconDescription = "red";
if (feature.properties) { if (feature.properties) {
var startingDateString =feature.properties.period.start; if (feature.properties.holidays && christmasHoliday) {
var month = (parseInt(startingDateString.substring(3,5))-1); var marker = new HoverMarker(latlng, { icon: christmasIcon, riseOnHover: true});
var startingDate = new Date("20"+startingDateString.substring(6,8),month,startingDateString.substring(0,2)); }
if (Date.now()<startingDate) { if (!feature.properties.hours.saturday && !feature.properties.hours.sunday) {
icon = greyIcon; var marker = new HoverMarker(latlng, { icon: blueIcon, riseOnHover: true});
iconDescription = "grey";
} else if (feature.properties.holidays && christmasSeason) {
icon = christmasIcon;
iconDescription = "christmas";
} else if ((!feature.properties.hours.saturday && !feature.properties.hours.sunday)||(feature.properties.hours.saturday.toLowerCase()==="gesloten"&&feature.properties.hours.sunday.toLowerCase()==="gesloten")) {
icon = blueIcon;
iconDescription = "blue";
} }
} }
return new HoverMarker(latlng, { icon: icon, riseOnHover: true}); return marker
} }
var map = L.map("map", {zoomControl: false}).setView([50.702, 4.335], 9); var map = L.map('map').setView([50.702, 4.335], 9);
var osm = L.tileLayer("https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}", { var osm = L.tileLayer('https://{s}.tiles.mapbox.com/v3/feliciaan.keoaj8d5/{z}/{x}/{y}{r}.png', {
id: 'mapbox/streets-v11', attribution: '© <a href="https://www.mapbox.com/map-feedback/">Mapbox</a> | © <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>-contributors | Made with ❤ by <a href="https://zeus.ugent.be">Zeus WPI</a>',
tileSize: 512, detectRetina: true
zoomOffset: -1,
// account name = zeuswpi, details are in password manager
// token has a restriction to only work with our domains and localhost
accessToken: 'pk.eyJ1IjoiemV1c3dwaSIsImEiOiJja2QzMDZ1NmcwMjBtMnlxbXV2bXVpaXhuIn0.-ViXZUT9SqRI3IvB8209LQ',
attribution: '<span>Achtergrondkaart © <a href="https://www.openstreetmap.org/copyright" target="_blank">OpenStreetMap</a>-bijdragers </span>, <span lang="en">Imagery © <a href="https://www.mapbox.com/">Mapbox</a></span>. | <span lang="en">Made with ❤ by <a href="https://zeus.gent/">Zeus WPI</a></span> | <a href="https://zeus.gent/about/privacy/">Privacybeleid</a>',
maxZoom: 18
}).addTo(map); }).addTo(map);
$.getJSON("https://blokdata.zeus.gent/data.json") $.getJSON('https://blokdata.zeus.gent/data.json')
.done(function(data) { .done(function(data) {
var geojson = L.geoJson(data, { var geojson = L.geoJson(data, {
onEachFeature: onEachFeature, onEachFeature: onEachFeature,
@ -93,55 +63,65 @@ $(document).ready(function() {
}, },
onAdd: function (map) { onAdd: function (map) {
this._div = L.DomUtil.create("div", this.divClass); this._div = L.DomUtil.create('div', this.divClass);
this._div.innerHTML = this.template(); this._div.innerHTML = this.template();
return this._div; return this._div;
} }
}); });
// code copied from http://jsfiddle.net/sowelie/3JbNY/ // code copied from http://jsfiddle.net/sowelie/3JbNY/
var HoverMarker = L.Marker.extend({ var HoverMarker = L.Marker.extend({
bindPopup: function(htmlContent, options) { bindPopup: function(htmlContent, options) {
if (options && options.showOnMouseOver) { if (options && options.showOnMouseOver) {
// call the super method
L.Marker.prototype.bindPopup.apply(this, [htmlContent, options]); L.Marker.prototype.bindPopup.apply(this, [htmlContent, options]);
// unbind the click event
this.off("click", this.openPopup, this); this.off("click", this.openPopup, this);
// bind to mouse over
this.on("mouseover", function(e) { this.on("mouseover", function(e) {
// get the element that the mouse hovered onto // get the element that the mouse hovered onto
var target = e.originalEvent.fromElement || e.originalEvent.relatedTarget; var target = e.originalEvent.fromElement || e.originalEvent.relatedTarget;
var ancestor = this._findAncestorWithClass(target, "leaflet-popup"); var parent = this._getParent(target, "leaflet-popup");
// check to see if the element is a popup, and if it is this marker's popup // check to see if the element is a popup, and if it is this marker's popup
if (ancestor && ancestor === this._popup._container) if (parent == this._popup._container)
return true; return true;
// show the popup
this.openPopup(); this.openPopup();
}, this); }, this);
// and mouse out
this.on("mouseout", function(e) { this.on("mouseout", function(e) {
// get the element that the mouse hovered onto // get the element that the mouse hovered onto
var target = e.originalEvent.toElement || e.originalEvent.relatedTarget; var target = e.originalEvent.toElement || e.originalEvent.relatedTarget;
// check to see if the element is a popup // check to see if the element is a popup
if (this._findAncestorWithClass(target, "leaflet-popup")) { if (this._getParent(target, "leaflet-popup")) {
L.DomEvent.on(this._popup._container, "mouseout", this._popupMouseOut, this); L.DomEvent.on(this._popup._container, "mouseout", this._popupMouseOut, this);
return true; return true;
} }
// hide the popup
this.closePopup(); this.closePopup();
}, this); }, this);
} }
}, },
_popupMouseOut: function(e) { _popupMouseOut: function(e) {
// detach the event // detach the event
L.DomEvent.off(this._popup, "mouseout", this._popupMouseOut, this); L.DomEvent.off(this._popup, "mouseout", this._popupMouseOut, this);
@ -149,38 +129,45 @@ $(document).ready(function() {
var target = e.toElement || e.relatedTarget; var target = e.toElement || e.relatedTarget;
// check to see if the element is a popup // check to see if the element is a popup
if (this._findAncestorWithClass(target, "leaflet-popup")) if (this._getParent(target, "leaflet-popup"))
return true; return true;
// check to see if the marker was hovered back onto // check to see if the marker was hovered back onto
if (target === this._icon) if (target == this._icon)
return true; return true;
// hide the popup
this.closePopup(); this.closePopup();
}, },
_findAncestorWithClass: function(element, className) { _getParent: function(element, className) {
while (element) {
if (element.className && L.DomUtil.hasClass(element, className)) var parent = element.parentNode;
return element;
element = element.parentNode; while (parent != null) {
if (parent.className && L.DomUtil.hasClass(parent, className))
return parent;
parent = parent.parentNode;
} }
return null; return false;
} }
}); });
var info = new SimpleControl("#info-template", "info", { var info = new SimpleControl('#info-template', 'info', {
position: "topright" position: 'topright'
}).addTo(map); }).addTo(map);
var sharePane = new SimpleControl("#share-template", "info", { var sharePane = new SimpleControl('#share-template', 'info', {
position: "bottomleft" position: 'bottomleft'
}).addTo(map); }).addTo(map);
var legend = new SimpleControl("#legend-template", christmasSeason ? "holiday-legend" : "legend", { var legend = new SimpleControl('#legend-template', christmasHoliday ? "holiday-legend" : "legend", {
position: "bottomright" position: 'bottomright'
}).addTo(map); }).addTo(map);
L.control.zoom().addTo(map);
}); });