74 lines
3.1 KiB
Markdown
74 lines
3.1 KiB
Markdown
# Public library data map
|
|
|
|
This project collects and maps data from public libraries across the Australia and the external Territories of Christmas Island and the Cocos (Keeling) Islands.
|
|
|
|
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).
|
|
|
|
Check out the map at [librarymap.hugh.run](https://librarymap.hugh.run).
|
|
|
|
Find more on this project at [about](https://librarymap.hugh.run/about).
|
|
|
|
## Attributions
|
|
|
|
See [sources](https://librarymap.hugh.run/sources).
|
|
|
|
## Want to help?
|
|
|
|
See [contributing](https://librarymap.hugh.run/contributing/), especially *[which files to update](https://librarymap.hugh.run/contributing/#which-files-to-update)*.
|
|
|
|
## Deployment
|
|
|
|
The website for this project uses [git-webhooks](https://git.suboptimal.solutions/hugh/git-webhooks) with a customisation to run the `process.js` file that is found in this repository on each pull. The `process.js` file **is stored with the webhooks files** so that everything can be `npm install`ed together. Remember this if you ever need to update the file.
|
|
|
|
This `process.js` file syncs any changes from the csv files into the topojson attributes (e.g. when a library changes their ILS).
|
|
|
|
## Updating the topojson
|
|
|
|
**NOTE**: If you update the topojson file and push, the server webhook will fail because there will be local changes. TODO: some way to fix this.
|
|
|
|
### 1. Update boundaries
|
|
|
|
This could be a bit of faffing around, depending what you are trying to do. Merging existing entities together is reasonably easy, but if you need to pull a council area out of a regional library, for example, you might need to mess around with LGA maps.
|
|
|
|
**Always work with copies of the original files**.
|
|
|
|
1. `boundaries.geo.json` should be aligned with `boundaries.topo.json`. If in doubt, use `topojson-client`'s `topo2geo` to get a geojson file with the most up to date data from the topojson:
|
|
|
|
`topo2geo boundaries_new.geo.json < boundaries.topo.json`
|
|
|
|
2. update in `qgis`
|
|
3. export out to geojson
|
|
|
|
### 2. Simplify to reduce the file size
|
|
|
|
#### Option 1
|
|
|
|
* upload to https://mapshaper.org/ and 'simplify' the boundaries
|
|
* download the simplified version
|
|
* replace `/public_library_map/boundaries.geo.json`
|
|
|
|
#### Option 2
|
|
|
|
```bash
|
|
sudo npm install -g mapshaper # if not already installed
|
|
mapshaper boundaries.geo.json snap -clean -o force precision=0.0001 format=geojson boundaries.geo.json
|
|
```
|
|
### 3. Turn it back into `topojson`:
|
|
|
|
```bash
|
|
sudo npm install -g topojson-server # if not already installed
|
|
geo2topo boundaries.geo.json -q 50000 > website/data/boundaries.topo.json
|
|
```
|
|
|
|
## Contributing
|
|
|
|
To contribute to the map data you can contact Hugh at librarymap [at] hugh.run. If necessary, I will add an account for you on `git.suboptimal.solutions` if you want to contribute to the code.
|
|
|
|
Contributors are listed at [contributors.txt](contributors.txt).
|
|
|
|
## Licenses
|
|
|
|
**/website/data**: [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/)
|
|
|
|
**everything else**: [GPL-3.0-or-later](https://www.gnu.org/licenses/gpl-3.0.txt)
|