about

wrecksite.uk is an interactive web map that visualises historical and modern shipwreck data around the UK. It combines high-resolution bathymetric data with wreck location information to help you explore the seafloor and discover the stories beneath the waves.

The project aims to make maritime history and geospatial data more accessible to the public, divers, researchers, and enthusiasts alike. By using open-source tools and public datasets, wrecksite.uk offers a lightweight, fast, and engaging way to view wreck locations and related details right in your browser.

The site is continuously evolving, with new features, layers, and data being added as the project develops. Whether you're interested in naval history, underwater topography, or just curious about what lies beneath the surface — you're in the right place.

Explore

Text content...

sources

The wrecks data is sourced from the Admiralty Marine Data Portal as a TSV and was reprocessed to EPSG:3857, with fields sanitised. This data is used under the Open Government Licence .

Bathymetric data was sourced from the Seabed Mapping Service. The resolution of the data is a maxium of 2m and was processed from the supplied .bag files with gdal, generating hillshades and reporjecting to EPSG:3857 for web map integration. This data is also Open Government Licence. More information can be found here.

contribute

Do you have any suggestions? Comments? Thoughts? Want to get involved?

Drop me a line at captain@wrecksite.uk

wrecksite

Bathymetric data update in progress 23/04 AM

Using bathymetric data at 1m resolution, spot shipwrecks on the sea floor...

This map is for informational and educational purposes only. Not to be used for navigation, piracy, wreck-stripping... But might be useful for divers, historians, researchers.

Contains United Kingdom Hydrographic Office data © Crown copyright and database right.

Wreck Icon
function populateFilterOptions(features) { const types = new Set(), flags = new Set(), years = new Set(); features.forEach(f => { if (f.properties.type) types.add(f.properties.type); if (f.properties.flag) flags.add(f.properties.flag); const ds = f.properties['Date sunk']; if (ds && ds.length >= 4) years.add(ds.substring(0, 4)); }); function populateSelect(id, values) { const select = document.getElementById(id); if (!select) return; if (select.choices) { select.choices.destroy(); } select.innerHTML = ''; values.sort((a, b) => a.localeCompare(b)).forEach(val => { const option = document.createElement('option'); option.value = val; option.textContent = val; select.appendChild(option); }); const instance = new Choices(select, { removeItemButton: true, shouldSort: true, placeholder: true, placeholderValue: 'Select...', position: 'bottom', duplicateItemsAllowed: false }); select.choices = instance; } populateSelect('filter-type', [...types]); populateSelect('filter-flag', [...flags]); populateSelect('filter-date', [...years]); }
Tools