About
The mapping website at http://maps.ozultimate.com/ was designed and built by Tom Brennan website@ozultimate.com.
For information on how to use the site, see the Help page.
With the exception of items noted below in the credits, code is licensed under the MIT license, Copyright 2021 Tom Brennan.
Source files are available on Github
Credits
Map layers are © Department of Customer Service 2021. See NSW Spatial Services - Web Services for more detail.
Interface uses the following libraries:
- Leaflet by Vladimir Agafonkin and others
- Leaflet AJAX by Calvin Metcalf
- Leaflet.OpacityControls - for the opacity slider, with some modifications
- Leaflet-Geoman - for adding markers, lines and polygons
- previously used Leaflet Draw, but this does not appear to be being maintained
- Leaflet.FileLayer by Makina Corpus - for loading KML, GPX and GeoJSON files, including drag and drop on to the map canvas - modified to allow loading/editing of multigeometries
- toGeoJSON - required by Leaflet.FileLayer
- geojson-flatten - by Tom Macwright, used by the modified Leaflet.FileLayer
- Leaflet.Save - self authored, depends on
- Filesaver.js by Eli Grey - helps to simplify the save functionality across different browsers
- tokml - allows saving back to KML
- togpx - allows saving back to GPX
- leaflet.mouseCoordinate - for displaying the co-ordinates in the lower right. I have created a modified version of this for the NSW maps
- Leaflet.GeometryUtil by Makina Corpus
- jQuery Touch Punch for mobile UI improvements
Some icons are from Font Awesome by Dave Gandy
TODO
- Geographic name lookup
- Ability to plot grid references from coordinates (see add points feature on http://topo.notto.be)
Current Version
Help on the latest current version can be found under the Help page.
The current version can be found at http://maps.ozultimate.com/.
Versions
The following versions are “live” in the sense that they will probably be improved by having any useful new features back populated where relevant. For example, some of the archive versions below can be made more useful by modifying some of the basic features. In short, the archive versions are more for learning, the ones in this section are for actual use. The reason for keeping a number of different versions in play is that for mobile in particular, more is not necessarily better. Functionality and data both cost bandwidth. Sometimes all you need is a basic topo map, without the bells and whistles.
These are the ones that I use at work, home or on mobile.
- Topo - Essentially the same as the Location one below. Single layer LPI topo map with user location on mobile (needs HTTPS).
- Topo/Imagery - Similar to the Two Layer with Opacity one below - two layers (LPI Current Topo, LPI Imagery), with an opacity slider, but also
- supports the slider on mobile
- has smooth opacity sliding rather than jerky
- shows grid reference and map rather than full UTM (tap on mobile to show)
- follows the user location on mobile (requires HTTPS)
- Australia - as per the main app, but with a topographic layer (1:100k) for Australia, and no aerial imagery.
- Tasmania - as per the main app, but for Tasmania
Archive
The following versions of the mapping app are presented for others to use/learn from/steal etc. They are all licensed under the MIT License. They represent a progression of learning which may be useful for people.
- Basic Topo - this is close to the simplest version of a mapping app under Leaflet that's possible. It includes one layer, the LPI Current Topo layer, plus a pointer which displays co-ordinates. Not bad for mobile, since it's much lighter weight than subsequent versions, and only one layer. I made a change to the mouse co-ordinates code to allow a tap on the screen to cause the co-ordinates to change, as there's no mouse or “mouseover” on mobile!
- Location - as above, but includes a location function that uses the GPS, and also uses the mouse co-ordinates code from Map Lookup below to find a 6 figure grid reference and map rather than full UTM. Probably needs to be accessed via HTTPS due to Chrome moving to secure location data. Ideally there would be a way of caching the topo tiles for offline use.
- Two Layer with Opacity - a good all purpose map. Two layers (LPI Current Topo, LPI Imagery), with an opacity slider to move between them. Great for finding passes and canyons.
- Two Layer with Opacity (old/new series maps) - as above, but with the layers being the LPI Current Topo and the LPI Series 1 Topo. Good for comparing changes.
- Load GPX/KML/GeoJSON Files - as above, but with the ability to drag and drop GPX/KML/GeoJSON files on to the map (or open), and have them displayed as tracks and markers. The map will automatically zoom to the extent of the file. Waypoint names appear in a popup if you click on the marker.
- Create/Edit data - similar to Two Layer with Opacity, but with the ability to create, edit, delete and save markers, lines and polygons using Leaflet.Draw and a plugin I wrote (Leaflet.Save). This allows saving to KML, GPX and GeoJSON, depending on what has been enabled. Polygons display their area when created or edited.
- Map Lookup - as above, but with an alteration to the mouse co-ordinates to include the NSW map name and 6-figure grid reference. The map name uses a grid based lookup, so is not 100% accurate, as there are some maps that don't exactly align with the relevant 1:25k, 1:50k or 1:100k grids.
- Permalink - as above, but with ability to save a link that can be shared. This includes the current zoom, map centre, and any objects that have been drawn on the map (but not including items loaded via the File Load above).
- Label Edit - as above, but with ability to add/edit labels on features. Also allows editing/saving of data loaded from GPX/KML/GeoJSON.
- Print - basic topo map only, but enables a user selectable box to select a print area. When the save button is clicked, the tiles are downloaded and stitched together, and a PNG file exported. The resulting image usually needs some post-processing, as the contour lines print in a pale colour.