fix styling for mobile

- remove overlays on small screens
- minimise control on small screens
- add popup on zooming to area (since touchscreen devices have no 'hover')
- fix navigation menu for small screens
- add footer with licensing info
- fix table display on small screens

fixes #4
fixes #11
This commit is contained in:
Hugh Rundle 2021-01-24 12:40:17 +11:00
parent 259a29be22
commit bd664dd17d
6 changed files with 452 additions and 350 deletions

View file

@ -15,51 +15,56 @@
<h2>About Library Map</h2>
<p id="beta">Beta!</p>
</section>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li class="active-tab">About</li>
<li><a href="/sources">Acknowledgements</a></li>
<li><a href="/contributing">How you can help</a></li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li class="active-tab">About</li>
<li><a href="/sources">Acknowledgements</a></li>
<li><a href="/contributing">How you can help</a></li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
<section class="info-page">
<h2 id="about-library-map">About Library Map</h2>
<p>This project collects and maps data from public libraries across the Australia and the external Australian Territories of Christmas Island and the Cocos (Keeling) Islands. In the long term I hope to include more data that can be combined and cross-referenced, e.g. library funding from local and state governments, HILDA data etc.</p>
<p>You should be able to find the location of every public library in Australia territory, plus the standard loan period for each libary service, and whether they charge overdue fines (if known, in both cases).</p>
<p>Soon you will be able to see which integrated library system (ILS/LMS) each library service uses.</p>
<h3 id="why-this-data">Why this data?</h3>
<p>When I worked as a systems librarian in public libraries I often wondered how the social networks of decision makers - most obviously reflected by geography and state borders - affected decision making on things like library sofware procurement. I thought mapping systems visually might reveal things that are less obvious on a simple table or list.</p>
<p>Rules about <strong>loan periods</strong> are arbitrary. I thought it might be interesting to see whether there are any regional trends. Im surprised by some of the results — do some libraries really have a standard loan period of six weeks? Seems kind of long. Why do so many rural libraries only lend items for two weeks? Is it because country people read faster, or something to do with limited book stock? 🤔</p>
<p><strong>Fines for overdue library books</strong> are inefficient, ineffective, perverse, and regressive. “Punishable by fine” simply means “legal for rich people”. Mapping library fine regimes provides a view of any regional patterns, helps library managers to identify nearby colleagues who have already made their library fine-free and may be able to provide advice, and also allows activists to identify which libraries and local councils would benefit from some encouragement.</p>
<h3 id="definitions">Definitions</h3>
<h4 id="overdue-fines">Overdue fines</h4>
<p>A library service is classified as charging fines for overdue items if any kind of non-refundable fee is charged prior to <strong>28 days overdue</strong>. This period has been chosen because some libraries declare an item “lost” around that time, and invoice the borrower for a <em>replacement fee</em>. Designating these libraries as “not charging overdue fines” and others that charge e.g. a “notice fee” at the same cutoff time as “charging overdue fines” starts to get a bit weird.</p>
<h4 id="fines-for-children">Fines for children</h4>
<p>Some libraries charge fines or fees for late-returned items, but exempt members who are under the age of (variously) 12, 16, 17, or 18; and/or for items designated as “for children”. Rather than creating my own specific definition I classify all libraries with a fine regime like this as “no fines for children”. Wouldnt it be better if they just didnt charge overdue fines at all?</p>
<h4 id="standard-loan-period">Standard loan period</h4>
<p>The “standard loan period” is the loan period applied to an ordinary book, and may apply to other items or indeed all items held in a library. Data for Western Australia is provisional and in some cases has been rounded to the nearest “week” (e.g. a 19 day loan period is recorded as 3 weeks).</p>
<h4 id="indigenous-knowledge-centre">Indigenous Knowledge Centre</h4>
<p>Currently, only libraries classified as <em>Indigenous Knowledge Centres</em> by the State Library of Queensland are classified as such on this map. In future there may be other centres so identified.</p>
<h3 id="caveats">Caveats</h3>
<p>Most of the data for the map comes from government open data sources. As such it is subject to government bias, and may be out of date or over/under sampled. I make no claim or warranty that the data being complete, accurate, or up to date — though I aim for it to be all of those things. If in doubt, always check with the library directly.</p>
<h3 id="nomenclature">Nomenclature</h3>
<p>Library locations are classified into four types. In general mode these are:</p>
<ul>
<li>Settler Knowledge Centres</li>
<li>Indigenous Knowledge Centres</li>
<li>Worker Pacification Centres</li>
<li>Imperial Knowledge Centres</li>
</ul>
<p>If this naming convention makes you uncomfortable, you may view the map in <em>White fragility mode</em>, in which case the names are:</p>
<ul>
<li>Public Libraries</li>
<li>Indigenous Knowledge Centres</li>
<li>Mechanics Institutes</li>
<li>National &amp; State Libraries</li>
</ul>
</section>
<main>
<section class="info-page">
<h2 id="about-library-map">About Library Map</h2>
<p>This project collects and maps data from public libraries across the Australia and the external Australian Territories of Christmas Island and the Cocos (Keeling) Islands. In the long term I hope to include more data that can be combined and cross-referenced, e.g. library funding from local and state governments, HILDA data etc.</p>
<p>You should be able to find the location of every public library in Australia territory, plus the standard loan period for each libary service, and whether they charge overdue fines (if known, in both cases).</p>
<p>Soon you will be able to see which integrated library system (ILS/LMS) each library service uses.</p>
<h3 id="why-this-data">Why this data?</h3>
<p>When I worked as a systems librarian in public libraries I often wondered how the social networks of decision makers - most obviously reflected by geography and state borders - affected decision making on things like library sofware procurement. I thought mapping systems visually might reveal things that are less obvious on a simple table or list.</p>
<p>Rules about <strong>loan periods</strong> are arbitrary. I thought it might be interesting to see whether there are any regional trends. Im surprised by some of the results — do some libraries really have a standard loan period of six weeks? Seems kind of long. Why do so many rural libraries only lend items for two weeks? Is it because country people read faster, or something to do with limited book stock? 🤔</p>
<p><strong>Fines for overdue library books</strong> are inefficient, ineffective, perverse, and regressive. “Punishable by fine” simply means “legal for rich people”. Mapping library fine regimes provides a view of any regional patterns, helps library managers to identify nearby colleagues who have already made their library fine-free and may be able to provide advice, and also allows activists to identify which libraries and local councils would benefit from some encouragement.</p>
<h3 id="definitions">Definitions</h3>
<h4 id="overdue-fines">Overdue fines</h4>
<p>A library service is classified as charging fines for overdue items if any kind of non-refundable fee is charged prior to <strong>28 days overdue</strong>. This period has been chosen because some libraries declare an item “lost” around that time, and invoice the borrower for a <em>replacement fee</em>. Designating these libraries as “not charging overdue fines” and others that charge e.g. a “notice fee” at the same cutoff time as “charging overdue fines” starts to get a bit weird.</p>
<h4 id="fines-for-children">Fines for children</h4>
<p>Some libraries charge fines or fees for late-returned items, but exempt members who are under the age of (variously) 12, 16, 17, or 18; and/or for items designated as “for children”. Rather than creating my own specific definition I classify all libraries with a fine regime like this as “no fines for children”. Wouldnt it be better if they just didnt charge overdue fines at all?</p>
<h4 id="standard-loan-period">Standard loan period</h4>
<p>The “standard loan period” is the loan period applied to an ordinary book, and may apply to other items or indeed all items held in a library. Data for Western Australia is provisional and in some cases has been rounded to the nearest “week” (e.g. a 19 day loan period is recorded as 3 weeks).</p>
<h4 id="indigenous-knowledge-centre">Indigenous Knowledge Centre</h4>
<p>Currently, only libraries classified as <em>Indigenous Knowledge Centres</em> by the State Library of Queensland are classified as such on this map. In future there may be other centres so identified.</p>
<h3 id="caveats">Caveats</h3>
<p>Most of the data for the map comes from government open data sources. As such it is subject to government bias, and may be out of date or over/under sampled. I make no claim or warranty that the data being complete, accurate, or up to date — though I aim for it to be all of those things. If in doubt, always check with the library directly.</p>
<h3 id="nomenclature">Nomenclature</h3>
<p>Library locations are classified into four types. In general mode these are:</p>
<ul>
<li>Settler Knowledge Centres</li>
<li>Indigenous Knowledge Centres</li>
<li>Worker Pacification Centres</li>
<li>Imperial Knowledge Centres</li>
</ul>
<p>If this naming convention makes you uncomfortable, you may view the map in <em>White fragility mode</em>, in which case the names are:</p>
<ul>
<li>Public Libraries</li>
<li>Indigenous Knowledge Centres</li>
<li>Mechanics Institutes</li>
<li>National &amp; State Libraries</li>
</ul>
</section>
</main>
<footer>
<p>This website and the data it uses licensed <a href="https://creativecommons.org/licenses/by/4.0/">CC-BY-4.0</a></p>
</footer>
</body>
</html>

View file

@ -15,53 +15,58 @@
<h2>Contributing to Library Map</h2>
<p id="beta">Beta!</p>
</section>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/sources">Acknowledgements</a></li>
<li class="active-tab">How you can help</li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/sources">Acknowledgements</a></li>
<li class="active-tab">How you can help</li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
<section class="info-page">
<h2 id="contributing">Contributing</h2>
<p>Id love your help to make <em>Library Map</em> as accurate and useful as possible.</p>
<h3 id="how-to-contribute-your-idea-bug-report-or-improvement">How to contribute your idea, bug report or improvement</h3>
<ol type="1">
<li>You can <a href="https://github.com/hughrun/public_library_map/issues">create an issue</a> on GitHub.</li>
<li>You can <a href="https://docs.github.com/en/github/.collaborating-with-issues-and-pull-requests/about-pull-requests">send a pull request</a> — though it is <em>strongly preferred</em> that you either ask to be assigned to an existing issue, or create a new issue, first.</li>
<li>You can just send an email to <code>librarymap</code>@<code>hugh</code>.<code>run</code>.</li>
</ol>
<h3 id="which-files-to-update">Which files to update</h3>
<p>To update information about library <em>services</em> (e.g. fines info, loan period etc) you should edit <code>website/data/library_services_information.csv</code></p>
<p>To update information about library <em>locations</em> (e.g. street address, phone number, coordinates) you shoudl edit the relevant csv location file:</p>
<ul>
<li><code>website/data/indigenous_knowledge_centre_locations.csv</code></li>
<li><code>website/data/mechanics_institute_locations.csv</code></li>
<li><code>website/data/nsla_library_locations.csv</code></li>
<li><code>website/data/public_library_locations.csv</code></li>
</ul>
<p>Do not directly edit JSON files - these are <a href="https://github.com/hughrun/public_library_map/blob/master/about.md#important-files-that-are-not-in-this-repository">updated programatically</a>.</p>
<h3 id="citing-and-crediting-data-sources">Citing and crediting data sources</h3>
<p>If you are adding a lot of data and have a new source for it, make sure it is cited. You should update the list of sources at both <code>sources.md</code> <em>and</em> <code>website/sources/index.html</code>. If your source is “I just know because its my local library” or “I looked it up on their website” you dont need to add that to the list of sources. If your source is “I found a PDF listing every public library on the State Library website”, you do.</p>
<h3 id="missing-or-inaccurate-data">Missing or inaccurate data</h3>
<p>Currently were missing data for some library services in relation to <strong>standard loan periods</strong> and <strong>fines for overdue items</strong>.</p>
<p>Its likely that some <strong>library location data</strong> is inaccurate — especially for New South Wales. Its also possible that the address data is wrong (even though the location shown may be correct), and in some cases it is missing.</p>
<p>Its possible that some of the <strong>fines data for Queensland</strong> is a little off. This came from the State Library of Queensland but I know for a fact that some of the data was wrong (e.g. Gold Coast Libraries does not charge overdue fines, but the SLQ reports says it does).</p>
<p>I am particularly interested if you know of data sources for entire regions, states, or Australia — especially if theyre reliably kept up to date.</p>
<p>If you can fill in any of these blanks, please update the relevant CSV file and send a pull request. If your data is coming from somewhere in particular, you should also add that to <code>sources.md</code> in the relevant table.</p>
<h3 id="ideas-for-additional-data">Ideas for additional data</h3>
<p>You might have an idea for library data that would be useful to map. Im really happy to hear about these ideas! Its possible that the information you want to map is unavailable, or just really hard to get, or maybe I will disagree that its useful. Thats ok - please ask anyway, expecially if you know where to find the data.</p>
<h3 id="improvements-to-documentation">Improvements to documentation</h3>
<p>Im always — <em>always</em> — happy to hear how I can improve documentation. Even better if you make the edit and then send a pull request.</p>
<h3 id="improvements-to-the-website-design-layout-or-information">Improvements to the website design, layout, or information</h3>
<p>You might have an idea for an improvement thats not about the data per se, but rather about the website. Maybe theres some accessibilty improvements I can make. Let me know!</p>
<h3 id="licensing-and-copyright">Licensing and copyright</h3>
<p>By contributing to this project you agree to license your work under the following licenses:</p>
<p><strong>/website/data/*</strong>: <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC-BY-SA</a></p>
<p><strong>everything else</strong>: <a href="https://www.gnu.org/licenses/gpl-3.0.txt">GPL-3.0-or-later</a></p>
</section>
<main>
<section class="info-page">
<h2 id="contributing">Contributing</h2>
<p>Id love your help to make <em>Library Map</em> as accurate and useful as possible.</p>
<h3 id="how-to-contribute-your-idea-bug-report-or-improvement">How to contribute your idea, bug report or improvement</h3>
<ol type="1">
<li>You can <a href="https://github.com/hughrun/public_library_map/issues">create an issue</a> on GitHub.</li>
<li>You can <a href="https://docs.github.com/en/github/.collaborating-with-issues-and-pull-requests/about-pull-requests">send a pull request</a> — though it is <em>strongly preferred</em> that you either ask to be assigned to an existing issue, or create a new issue, first.</li>
<li>You can just send an email to <code>librarymap</code>@<code>hugh</code>.<code>run</code>.</li>
</ol>
<h3 id="which-files-to-update">Which files to update</h3>
<p>To update information about library <em>services</em> (e.g. fines info, loan period etc) you should edit <code>website/data/library_services_information.csv</code></p>
<p>To update information about library <em>locations</em> (e.g. street address, phone number, coordinates) you shoudl edit the relevant csv location file:</p>
<ul>
<li><code>website/data/indigenous_knowledge_centre_locations.csv</code></li>
<li><code>website/data/mechanics_institute_locations.csv</code></li>
<li><code>website/data/nsla_library_locations.csv</code></li>
<li><code>website/data/public_library_locations.csv</code></li>
</ul>
<p>Do not directly edit JSON files - these are <a href="https://github.com/hughrun/public_library_map/blob/master/about.md#important-files-that-are-not-in-this-repository">updated programatically</a>.</p>
<h3 id="citing-and-crediting-data-sources">Citing and crediting data sources</h3>
<p>If you are adding a lot of data and have a new source for it, make sure it is cited. You should update the list of sources at both <code>sources.md</code> <em>and</em> <code>website/sources/index.html</code>. If your source is “I just know because its my local library” or “I looked it up on their website” you dont need to add that to the list of sources. If your source is “I found a PDF listing every public library on the State Library website”, you do.</p>
<h3 id="missing-or-inaccurate-data">Missing or inaccurate data</h3>
<p>Currently were missing data for some library services in relation to <strong>standard loan periods</strong> and <strong>fines for overdue items</strong>.</p>
<p>Its likely that some <strong>library location data</strong> is inaccurate — especially for New South Wales. Its also possible that the address data is wrong (even though the location shown may be correct), and in some cases it is missing.</p>
<p>Its possible that some of the <strong>fines data for Queensland</strong> is a little off. This came from the State Library of Queensland but I know for a fact that some of the data was wrong (e.g. Gold Coast Libraries does not charge overdue fines, but the SLQ reports says it does).</p>
<p>I am particularly interested if you know of data sources for entire regions, states, or Australia — especially if theyre reliably kept up to date.</p>
<p>If you can fill in any of these blanks, please update the relevant CSV file and send a pull request. If your data is coming from somewhere in particular, you should also add that to <code>sources.md</code> in the relevant table.</p>
<h3 id="ideas-for-additional-data">Ideas for additional data</h3>
<p>You might have an idea for library data that would be useful to map. Im really happy to hear about these ideas! Its possible that the information you want to map is unavailable, or just really hard to get, or maybe I will disagree that its useful. Thats ok - please ask anyway, expecially if you know where to find the data.</p>
<h3 id="improvements-to-documentation">Improvements to documentation</h3>
<p>Im always — <em>always</em> — happy to hear how I can improve documentation. Even better if you make the edit and then send a pull request.</p>
<h3 id="improvements-to-the-website-design-layout-or-information">Improvements to the website design, layout, or information</h3>
<p>You might have an idea for an improvement thats not about the data per se, but rather about the website. Maybe theres some accessibilty improvements I can make. Let me know!</p>
<h3 id="licensing-and-copyright">Licensing and copyright</h3>
<p>By contributing to this project you agree to license your work under the following licenses:</p>
<p><strong>/website/data/*</strong>: <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC-BY-SA</a></p>
<p><strong>everything else</strong>: <a href="https://www.gnu.org/licenses/gpl-3.0.txt">GPL-3.0-or-later</a></p>
</section>
</main>
<footer>
<p>This website and the data it uses licensed <a href="https://creativecommons.org/licenses/by/4.0/">CC-BY-4.0</a></p>
</footer>
</body>
</html>

View file

@ -19,44 +19,48 @@
<h2>Library Map</h2>
<p id="beta">Beta!</p>
</section>
<nav>
<ul>
<li class="active-tab">Home</li>
<li><a href="/about">About</a></li>
<li><a href="/sources">Acknowledgements</a></li>
<li><a href="/contributing">How you can help</a></li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
</header>
<nav>
<ul>
<li class="active-tab">Home</li>
<li><a href="/about">About</a></li>
<li><a href="/sources">Acknowledgements</a></li>
<li><a href="/contributing">How you can help</a></li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
<main>
<div id="loading">Loading, please be patient...</div>
<div id="loading">Loading, please be patient...</div>
<!-- leaflet script -->
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script>
<!-- TopoJSON -->
<script src="https://unpkg.com/topojson@3"></script>
<!-- geocsv -->
<script src="leaflet.geocsv.js" type="text/javascript"></script>
<!-- leaflet fill patterns -->
<script src="leaflet.pattern.js" type="text/javascript"></script>
<!-- leaflet script -->
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script>
<!-- TopoJSON -->
<script src="https://unpkg.com/topojson@3"></script>
<!-- geocsv -->
<script src="leaflet.geocsv.js" type="text/javascript"></script>
<!-- leaflet fill patterns -->
<script src="leaflet.pattern.js" type="text/javascript"></script>
<section class="intro">
<p>Made by <a href="https://www.hughrundle.net">Hugh Rundle</a> using open data. Play with the layers by using the layer control at the top right of the map.</p>
<p>Email <strong>librarymap@hugh.run</strong> if you have any tips or suggestions.</p>
<p>You need a <a href="https://caniuse.com/?search=fetch">modern browser</a> with JavaScript enabled to use Library Map. This site does not work in Internet Explorer.</p>
</section>
<section class="intro">
<p>Made by <a href="https://www.hughrundle.net">Hugh Rundle</a> using open data. Play with the layers by using the layer control at the top right of the map.</p>
<p>Email <strong>librarymap@hugh.run</strong> if you have any tips or suggestions.</p>
<p>You need a <a href="https://caniuse.com/?search=fetch">modern browser</a> with JavaScript enabled to use Library Map. This site does not work in Internet Explorer.</p>
</section>
<div id="mode-switch">
<div></div>
<button id="mode-button" name="mode-button">View in White Fragility Mode</button>
</div>
<!-- div to attach everything to -->
<div id="mapid"></div>
<!-- declares mapBoxToken constant -->
<script src="./secrets.js" type="text/javascript"></script>
<!-- this is the guts of it -->
<script src="./load-map.js" type="text/javascript"></script>
<div id="mode-switch">
<div></div>
<button id="mode-button" name="mode-button">View in White Fragility Mode</button>
</div>
<!-- div to attach everything to -->
<div id="mapid"></div>
<!-- declares mapBoxToken constant -->
<script src="./secrets.js" type="text/javascript"></script>
<!-- this is the guts of it -->
<script src="./load-map.js" type="text/javascript"></script>
</main>
<footer>
<p>This website and the data it uses licensed <a href="https://creativecommons.org/licenses/by/4.0/">CC-BY-4.0</a></p>
</footer>
</body>
</html>

View file

@ -74,7 +74,7 @@ Promise.all([boundaries, branchesCsv, ikcCsv, mechanics, nslaBranches])
layer.on({
mouseover: e => highlightFeature(e),
mouseout: e => resetHighlight(e, fines),
click: zoomToFeature
click: e => zoomToFeature(e, feature.properties),
})
}
});
@ -320,10 +320,11 @@ Promise.all([boundaries, branchesCsv, ikcCsv, mechanics, nslaBranches])
}
// add control layers
var isSmallScreen = window.screen.availWidth < 800;
var mapControl = L.control.layers(
baseMaps,
overlayMaps,
{ "collapsed" : false }
{ "collapsed" : isSmallScreen }
).addTo(map);
// scale
@ -344,15 +345,19 @@ Promise.all([boundaries, branchesCsv, ikcCsv, mechanics, nslaBranches])
setGeneral()
mapControl.remove();
infoBoxes.branches.remove()
mapControl = L.control.layers(baseMaps, overlayMaps, {"collapsed": false}).addTo(map);
infoBoxes.branches.addTo(map)
mapControl = L.control.layers(baseMaps, overlayMaps, {"collapsed": isSmallScreen}).addTo(map);
if (!isSmallScreen) {
infoBoxes.branches.addTo(map)
}
} else {
sessionStorage.setItem('mapMode', 'fragile');
setFragile()
mapControl.remove();
infoBoxes.branches.remove()
mapControl = L.control.layers(baseMaps, overlayMaps, {"collapsed": false}).addTo(map);
infoBoxes.branches.addTo(map)
mapControl = L.control.layers(baseMaps, overlayMaps, {"collapsed": isSmallScreen}).addTo(map);
if (!isSmallScreen) {
infoBoxes.branches.addTo(map)
}
}
}
@ -379,15 +384,32 @@ Promise.all([boundaries, branchesCsv, ikcCsv, mechanics, nslaBranches])
if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {
layer.bringToFront();
}
infoBoxes.serviceInfo.addTo(map)
infoBoxes.serviceInfo.update(layer.feature.properties);
if (!isSmallScreen) {
infoBoxes.serviceInfo.addTo(map)
infoBoxes.serviceInfo.update(layer.feature.properties)
}
}
function zoomToFeature(e, props) {
map.fitBounds(e.target.getBounds());
e.target.bindPopup(`
<strong>${props.name}</strong>` +
`<p>Fines: ` +
(
props.fines === "no" ? "No" :
props.fines == "no_unconfirmed" ? "Probably no" :
props.fines === "yes" ? "Yes" :
props.fines == "adults" ? "No for children" :
props.fines == "by_lga" ? "Varies by LGA" : "Unknown"
) +
`<br/>Loans : ` +
(!props.standard_loan_weeks || props.standard_loan_weeks == "?" ? `Unknown` : `${props.standard_loan_weeks} weeks`) +
`</p>`
).openPopup()
}
// clear on mouseout
function zoomToFeature(e) {
map.fitBounds(e.target.getBounds());
}
function resetHighlight(e, layer) {
layer.resetStyle(e.target);
infoBoxes.serviceInfo.remove()
@ -423,7 +445,9 @@ Promise.all([boundaries, branchesCsv, ikcCsv, mechanics, nslaBranches])
<h4>Library Branches</h4>
<p>Circles represent an 800 metre radius from the library location. This is the distance generally used by urban planners to represent "conceptually within walking distance" for most people.</p>
`};
infoBoxes.branches.addTo(map) // add by default
if (!isSmallScreen) {
infoBoxes.branches.addTo(map) // add by default it larger screen
}
// STANDARD LOAN PERIOD LEGEND
infoBoxes.loanPeriod.onAdd = addLegend;
@ -498,10 +522,14 @@ Promise.all([boundaries, branchesCsv, ikcCsv, mechanics, nslaBranches])
// add info boxes & markers when relevant layer is added
map.on('overlayadd', l => {
if (l.name == "Fines") {
infoBoxes.fines.addTo(map)
if (!isSmallScreen) {
infoBoxes.fines.addTo(map)
}
}
if (l.name == "Loan Period") {
infoBoxes.loanPeriod.addTo(map)
if (!isSmallScreen) {
infoBoxes.loanPeriod.addTo(map)
}
loanPeriod.bringToBack()
}
})
@ -533,7 +561,9 @@ Promise.all([boundaries, branchesCsv, ikcCsv, mechanics, nslaBranches])
for (let k in overlayMaps ) {
mapControl.addOverlay(overlayMaps[k], k)
}
infoBoxes.branches.addTo(map);
if (!isSmallScreen) {
infoBoxes.branches.addTo(map)
}
modeButton.setAttribute('class', 'visible');
}
})

View file

@ -15,171 +15,176 @@
<h2>Sources &amp; Attributions</h2>
<p id="beta">Beta!</p>
</section>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li class="active-tab">Acknowledgements</li>
<li><a href="/contributing">How you can help</a></li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li class="active-tab">Acknowledgements</li>
<li><a href="/contributing">How you can help</a></li>
<li><a href="https://github.com/hughrun/public_library_map">Code</a></li>
</ul>
</nav>
<section class="sources">
<h2 id="sources-attributions">Sources &amp; Attributions</h2>
<p><em>Library Map</em> was written and conceived on unceded Wurundjeri Woi Wurrung land.</p>
<p>If you believe I have breached a license in using your data, or attributed it incorrectly, please get in touch at <code>librarymap</code>@<code>hugh</code>.<code>run</code></p>
<h3 id="visualisation">Visualisation</h3>
<table>
<thead>
<tr class="header">
<th>Source</th>
<th>Link</th>
<th>License</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>leaflet.js</td>
<td><a href="https://leafletjs.com">leafletjs.com</a></td>
<td>BSD-2-Clause</td>
</tr>
<tr class="even">
<td>leaflet.geoCSV</td>
<td><a href="https://github.com/joker-x/Leaflet.geoCSV">GitHub</a></td>
<td>GPL-3.0-or-later</td>
</tr>
<tr class="odd">
<td>leaflet.pattern</td>
<td><a href="https://github.com/teastman/Leaflet.pattern">GitHub</a></td>
<td>BSD-2-Clause</td>
</tr>
<tr class="even">
<td>MapBox</td>
<td><a href="https://www.mapbox.com">mapbox.com</a></td>
<td><a href="https://www.mapbox.com/legal/tos/">custom ToS</a></td>
</tr>
<tr class="odd">
<td>OpenStreetMap</td>
<td><a href="https://www.openstreetmap.org">openstreetmap.org</a></td>
<td>CC-BY-SA</td>
</tr>
</tbody>
</table>
<h3 id="library-services">Library services</h3>
<p>The library service boundaries are derived from local government boundary data care of PSMA and accessed from <a href="https://data.gov.au">data.gov.au</a>.</p>
<p>Data about fines and lending periods is a mix of original research, plus data provided by State Libraries and Public Libraries Victoria.</p>
<p>Data about language holdings (TODO) provided by various sources.</p>
<p>Data about Integrated Library Systems (ILS) (TODO - almost done) is mostly original research, with some data from State Library of Queensland, and some checked at Marshall Breedings <a href="http://librarytechnology.org">librarytechnology.org</a> site.</p>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Source</th>
<th>Link</th>
<th>License</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>PSMA</td>
<td><a href="https://data.gov.au">data.gov.au</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>Victorian Government</td>
<td><a href="https://www.localgovernment.vic.gov.au/__data/assets/pdf_file/0032/393809/2019-Directory-of-Public-Library-Services-Victoria.pdf">Directory of Public Libraries in Victoria</a></td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>NSW Government</td>
<td><a href="https://portal.spatial.nsw.gov.au/portal/apps/sites/#/home/items/a5f3bc7668be403aa88cdf6d1f7668b9/data?geometry=113.107%2C-39.164%2C186.935%2C-26.273&amp;page=48&amp;where=buildingcomplextype%20%3E%3D%2011%20AND%20buildingcomplextype%20%3C%3D%2011">Spatial NSW</a></td>
<td>CC-BY</td>
</tr>
<tr class="even">
<td>Queensland Government (Library Service data)</td>
<td><a href="https://www.data.qld.gov.au/dataset/slq-qld-public-libraries-annual-statistics/resource/f10df735-4a8a-45d6-8db9-b2a1a4a4289d">Public Libraries Annual Statistics</a></td>
<td>CC-BY-4.0</td>
</tr>
<tr class="odd">
<td>Stat Library Queensland</td>
<td><a href="https://plconnect.slq.qld.gov.au/managing-my-library/statistics/queensland-public-libraries-statistical-bulletin">Public Libraries Statistical Bulletin</a></td>
<td>CC-BY-SA</td>
</tr>
<tr class="even">
<td>WA NSLA statistics</td>
<td>personal communication</td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>Public Library Services (DoPC South Australia)</td>
<td><a href="https://www.libraries.sa.gov.au/client/en_AU/sapubliclibraries/?rm=LOCATE+A+LIBRA0%7C%7C%7C1%7C%7C%7C0%7C%7C%7Ctrue">Find a Library</a></td>
<td>© (fair dealing)</td>
</tr>
</tbody>
</table>
<h3 id="library-locations">Library locations</h3>
<p>Library locations are generally provided by state government departments.</p>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Source</th>
<th>Link</th>
<th>License</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Libraries Tasmania / data.gov.au</td>
<td><a href="https://data.gov.au/dataset/ds-dga-409f7f64-35ef-4a70-8db1-dd737a6fabec/details?q=libraries">Libraries Tasmania locations</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>Vicmap Features of Interest</td>
<td><a href="https://discover.data.vic.gov.au/dataset/vicmap-features-of-interest">data.vic.gov.au FoI</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="odd">
<td>ACT Open Data Portal</td>
<td><a href="https://www.data.act.gov.au/dataset/Library-Locations-Map/3nit-7kex">ACT Libraries locations</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>NSW State Library (NSW library locations and contacts)</td>
<td><a href="https://www.sl.nsw.gov.au/public-library-services/about-public-library-services/find-public-library-nsw">Public library services</a></td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>State Library of Queensland</td>
<td><a href="https://www.data.qld.gov.au/dataset/public-libraries">Queensland public libraries directory</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>Find a library in the NT</td>
<td><a href="https://nt.gov.au/leisure/arts-culture-heritage/libraries-and-records/find-a-library-in-the-nt">NT government website</a></td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>WA NSLA statistics</td>
<td>personal communication</td>
<td>© (fair dealing)</td>
</tr>
<tr class="even">
<td>Public Library Services (DoPC South Australia)</td>
<td><a href="https://www.libraries.sa.gov.au/client/en_AU/sapubliclibraries/?rm=LOCATE+A+LIBRA0%7C%7C%7C1%7C%7C%7C0%7C%7C%7Ctrue">Find a Library</a></td>
<td>© (fair dealing)</td>
</tr>
</tbody>
</table>
</section>
<main>
<section class="sources">
<h2 id="sources-attributions">Sources &amp; Attributions</h2>
<p><em>Library Map</em> was written and conceived on unceded Wurundjeri Woi Wurrung land.</p>
<p>If you believe I have breached a license in using your data, or attributed it incorrectly, please get in touch at <code>librarymap</code>@<code>hugh</code>.<code>run</code></p>
<h3 id="visualisation">Visualisation</h3>
<table>
<thead>
<tr class="header">
<th>Source</th>
<th>Link</th>
<th>License</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>leaflet.js</td>
<td><a href="https://leafletjs.com">leafletjs.com</a></td>
<td>BSD-2-Clause</td>
</tr>
<tr class="even">
<td>leaflet.geoCSV</td>
<td><a href="https://github.com/joker-x/Leaflet.geoCSV">GitHub</a></td>
<td>GPL-3.0-or-later</td>
</tr>
<tr class="odd">
<td>leaflet.pattern</td>
<td><a href="https://github.com/teastman/Leaflet.pattern">GitHub</a></td>
<td>BSD-2-Clause</td>
</tr>
<tr class="even">
<td>MapBox</td>
<td><a href="https://www.mapbox.com">mapbox.com</a></td>
<td><a href="https://www.mapbox.com/legal/tos/">custom ToS</a></td>
</tr>
<tr class="odd">
<td>OpenStreetMap</td>
<td><a href="https://www.openstreetmap.org">openstreetmap.org</a></td>
<td>CC-BY-SA</td>
</tr>
</tbody>
</table>
<h3 id="library-services">Library services</h3>
<p>The library service boundaries are derived from local government boundary data care of PSMA and accessed from <a href="https://data.gov.au">data.gov.au</a>.</p>
<p>Data about fines and lending periods is a mix of original research, plus data provided by State Libraries and Public Libraries Victoria.</p>
<p>Data about language holdings (TODO) provided by various sources.</p>
<p>Data about Integrated Library Systems (ILS) (TODO - almost done) is mostly original research, with some data from State Library of Queensland, and some checked at Marshall Breedings <a href="http://librarytechnology.org">librarytechnology.org</a> site.</p>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Source</th>
<th>Link</th>
<th>License</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>PSMA</td>
<td><a href="https://data.gov.au">data.gov.au</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>Victorian Government</td>
<td><a href="https://www.localgovernment.vic.gov.au/__data/assets/pdf_file/0032/393809/2019-Directory-of-Public-Library-Services-Victoria.pdf">Directory of Public Libraries in Victoria</a></td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>NSW Government</td>
<td><a href="https://portal.spatial.nsw.gov.au/portal/apps/sites/#/home/items/a5f3bc7668be403aa88cdf6d1f7668b9/data?geometry=113.107%2C-39.164%2C186.935%2C-26.273&amp;page=48&amp;where=buildingcomplextype%20%3E%3D%2011%20AND%20buildingcomplextype%20%3C%3D%2011">Spatial NSW</a></td>
<td>CC-BY</td>
</tr>
<tr class="even">
<td>Queensland Government (Library Service data)</td>
<td><a href="https://www.data.qld.gov.au/dataset/slq-qld-public-libraries-annual-statistics/resource/f10df735-4a8a-45d6-8db9-b2a1a4a4289d">Public Libraries Annual Statistics</a></td>
<td>CC-BY-4.0</td>
</tr>
<tr class="odd">
<td>Stat Library Queensland</td>
<td><a href="https://plconnect.slq.qld.gov.au/managing-my-library/statistics/queensland-public-libraries-statistical-bulletin">Public Libraries Statistical Bulletin</a></td>
<td>CC-BY-SA</td>
</tr>
<tr class="even">
<td>WA NSLA statistics</td>
<td>personal communication</td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>Public Library Services (DoPC South Australia)</td>
<td><a href="https://www.libraries.sa.gov.au/client/en_AU/sapubliclibraries/?rm=LOCATE+A+LIBRA0%7C%7C%7C1%7C%7C%7C0%7C%7C%7Ctrue">Find a Library</a></td>
<td>© (fair dealing)</td>
</tr>
</tbody>
</table>
<h3 id="library-locations">Library locations</h3>
<p>Library locations are generally provided by state government departments.</p>
<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<thead>
<tr class="header">
<th>Source</th>
<th>Link</th>
<th>License</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Libraries Tasmania / data.gov.au</td>
<td><a href="https://data.gov.au/dataset/ds-dga-409f7f64-35ef-4a70-8db1-dd737a6fabec/details?q=libraries">Libraries Tasmania locations</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>Vicmap Features of Interest</td>
<td><a href="https://discover.data.vic.gov.au/dataset/vicmap-features-of-interest">data.vic.gov.au FoI</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="odd">
<td>ACT Open Data Portal</td>
<td><a href="https://www.data.act.gov.au/dataset/Library-Locations-Map/3nit-7kex">ACT Libraries locations</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>NSW State Library (NSW library locations and contacts)</td>
<td><a href="https://www.sl.nsw.gov.au/public-library-services/about-public-library-services/find-public-library-nsw">Public library services</a></td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>State Library of Queensland</td>
<td><a href="https://www.data.qld.gov.au/dataset/public-libraries">Queensland public libraries directory</a></td>
<td>CC-BY 4.0</td>
</tr>
<tr class="even">
<td>Find a library in the NT</td>
<td><a href="https://nt.gov.au/leisure/arts-culture-heritage/libraries-and-records/find-a-library-in-the-nt">NT government website</a></td>
<td>© (fair dealing)</td>
</tr>
<tr class="odd">
<td>WA NSLA statistics</td>
<td>personal communication</td>
<td>© (fair dealing)</td>
</tr>
<tr class="even">
<td>Public Library Services (DoPC South Australia)</td>
<td><a href="https://www.libraries.sa.gov.au/client/en_AU/sapubliclibraries/?rm=LOCATE+A+LIBRA0%7C%7C%7C1%7C%7C%7C0%7C%7C%7Ctrue">Find a Library</a></td>
<td>© (fair dealing)</td>
</tr>
</tbody>
</table>
</section>
</main>
<footer>
<p>This website and the data it uses licensed <a href="https://creativecommons.org/licenses/by/4.0/">CC-BY-4.0</a></p>
</footer>
</body>
</html>

View file

@ -1,3 +1,13 @@
html {
height: 100%;
}
body {
min-height: 100%;
display: grid;
grid-template-rows: auto 1fr auto;
}
html,
body {
font-family: "Calibri", Arial, Tahoma, sans-serif;
@ -5,6 +15,13 @@ body {
padding: 0;
}
code,
pre {
font-family: "Jetbrains Mono", "Consolas", "Courier New", monospace;
background-color: #eee;
padding: 0 0.5em;
}
a,
a:active {
color: #FF3961;
@ -25,13 +42,27 @@ a:hover {
header {
margin: 0;
padding: 0;
display: grid;
grid-template-columns: auto 1fr auto;
font-family: "Calibri", Arial, Tahoma, sans-serif;
background-color: #000;
color: #fff;
}
/* NAVIGATION */
/* ========== */
nav {
margin: 0;
padding: 0;
grid-row: 3;
}
nav,
nav ul {
font-family: "Calibri", Arial, Tahoma, sans-serif;
background-color: #000;
margin: 0;
padding-left: 2em;
}
nav li {
@ -56,8 +87,52 @@ nav li a:hover {
.active-tab {
color: #000;
background-color: #fff;
border-top-right-radius: 10px;
}
@media only screen and (max-width: 800px) {
nav ul {
margin-left: 0;
padding-left: 0;
}
nav li {
display: block;
margin: 0;
padding: 0.5em 0 0.5em 1em;
border-color: #777;
border-left: none;
border-right: none;
}
}
#title {
display: flex;
align-items: center;
margin: 0;
padding: 0.5em 1em;
}
#logo {
height: 4em;
margin: 0 1em;
}
#beta {
font-family: "Comic Sans", Helvetica, Arial, sans-serif;
font-weight: bold;
font-size: 1.4em;
margin-left: 1em;
transform: rotate(-35deg);
background-color: #fff;
color: #FF3961;
padding: 0.25em 0.5em;
border-radius: 5px;
}
/* loading */
/* ======= */
#loading {
font-family: "Calibri", Arial, Tahoma, sans-serif;
font-size: 20px;
@ -107,36 +182,10 @@ nav li a:hover {
font-family: "Calibri", Arial, Tahoma, sans-serif;
}
header {
margin: auto;
display: grid;
grid-template-columns: auto 1fr auto;
padding: 0.5em 1em;
font-family: "Calibri", Arial, Tahoma, sans-serif;
background-color: #000;
color: #fff;
}
#title {
display: flex;
align-items: center;
}
#logo {
height: 4em;
margin-right: 1em;
}
#beta {
font-family: "Comic Sans", Helvetica, Arial, sans-serif;
font-weight: bold;
font-size: 1.4em;
margin-left: 1em;
transform: rotate(-35deg);
background-color: #fff;
color: #FF3961;
padding: 0.25em 0.5em;
border-radius: 5px;
footer {
border-top: 1px solid #eee;
width: 100%;
text-align: center;
}
#mode-switch {
@ -169,10 +218,12 @@ header {
}
table {
margin: auto;
border-collapse: collapse;
table-layout: fixed;
border: 1px solid #000;
width: 80%;
margin: 0 auto 0 -25%;
width: 150%;
max-width: 54em;
}
thead {
@ -190,21 +241,23 @@ tbody td {
padding: 0.5em 1em;
}
.sources table {
margin: 0 auto 0 -25%;
width: 150%;
max-width: 54em;
}
/* when below max width of para */
@media only screen and (max-width: 54em) {
.info-page,
.sources {
width: 95vw;
padding: 0 2.5vw;
}
.sources table {
table {
margin: 0 auto;
width: 100%;
max-width: 100%;
max-width: 100vw;
font-size: smaller;
}
td {
line-break: anywhere;
}
}