{"id":19174,"date":"2025-08-26T03:12:48","date_gmt":"2025-08-26T03:12:48","guid":{"rendered":"https:\/\/mapscaping.com\/?p=19174"},"modified":"2026-02-03T00:55:43","modified_gmt":"2026-02-03T00:55:43","slug":"uk-ports-map","status":"publish","type":"post","link":"https:\/\/mapscaping.com\/uk-ports-map\/","title":{"rendered":"UK Ports Map"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">UK Fishing Ports Map<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Explore the British Commercial Fishing Industry<\/h2>\n\n\n\n<p>Discover the economic powerhouses of Britain&#8217;s fishing industry with our comprehensive interactive map of UK fish landings data for 2023. Covering <strong>1,212 port locations<\/strong> across the United Kingdom, from Scotland&#8217;s major trawling ports to England&#8217;s coastal fishing harbors, explore detailed statistics showing which ports land the most fish by both weight and commercial value. Whether you&#8217;re researching the maritime economy, analyzing fishing industry trends, or studying UK coastal communities, this mapping tool provides authoritative data on commercial fish landings across Britain&#8217;s most comprehensive port database.<\/p>\n\n\n\n<div id=\"ports-map-1\" class=\"ports-wrapper\" role=\"region\" aria-label=\"UK Port Landings 2023 map widget\">\n\t<p class=\"ports-intro\" aria-label=\"Introduction\">Explore UK Ports.<\/p>\n\t<div class=\"ports-controls\" role=\"group\" aria-label=\"Map controls\">\n\t\t<button type=\"button\" class=\"ports-btn ports-near-btn\" aria-label=\"Go to my location\">Near me<\/button>\n\t\t<div class=\"ports-download-info\">\n\t\t\t<span class=\"ports-selected-text\">Click ports to select multiple<\/span>\n\t\t\t<button type=\"button\" class=\"ports-btn ports-download-btn\" data-format=\"geojson\" disabled>GeoJSON<\/button>\n\t\t\t<button type=\"button\" class=\"ports-btn ports-download-btn\" data-format=\"kml\" disabled>KML<\/button>\n\t\t\t<button type=\"button\" class=\"ports-btn ports-download-btn\" data-format=\"gpx\" disabled>GPX<\/button>\n\t\t\t<button type=\"button\" class=\"ports-btn ports-clear-selection\" disabled>Clear<\/button>\n\t\t<\/div>\n\t<\/div>\n\t<div id=\"ports-map-1-map\" class=\"ports-map\" role=\"region\" aria-label=\"UK Port Landings Map 2023\" tabindex=\"0\"><\/div>\n\t<div class=\"ports-attrib\">\u00a9 Natural England 2023; UK Port Landings data 2023; contains Ordnance Survey data \u00a9 Crown copyright &amp; database right.<\/div>\n<\/div>\n\n<style>\n\/* Modern, clean scoped styles *\/\n#ports-map-1 { \n\tfont-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;\n\tbackground: #ffffff;\n\tborder-radius: 12px;\n\tbox-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);\n\tpadding: 1.5rem;\n\tmargin: 1rem 0;\n\tborder: 1px solid rgba(0, 0, 0, 0.06);\n}\n\n#ports-map-1 .ports-intro { \n\tmargin: 0 0 1.25rem 0; \n\tfont-size: 1rem; \n\tcolor: #374151; \n\tfont-weight: 500;\n\tline-height: 1.5;\n}\n\n#ports-map-1 .ports-controls { \n\tdisplay: flex; \n\tflex-wrap: wrap; \n\tgap: 0.75rem; \n\talign-items: center; \n\tmargin-bottom: 1.25rem;\n\tpadding: 1rem;\n\tbackground: #f8fafc;\n\tborder-radius: 8px;\n\tborder: 1px solid #e2e8f0;\n}\n\n#ports-map-1 .ports-download-info {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 0.5rem;\n\talign-items: center;\n\tpadding: 0.5rem;\n\tbackground: #f3f4f6;\n\tborder: 1px solid #d1d5db;\n\tborder-radius: 6px;\n\tmargin-left: 0.5rem;\n}\n\n#ports-map-1 .ports-download-info.active {\n\tbackground: #eff6ff;\n\tborder-color: #3b82f6;\n}\n\n#ports-map-1 .ports-selected-text {\n\tfont-size: 0.875rem;\n\tcolor: #6b7280;\n\tfont-weight: 500;\n}\n\n#ports-map-1 .ports-download-info.active .ports-selected-text {\n\tcolor: #1e40af;\n}\n\n#ports-map-1 .ports-btn:disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n\tbackground: #f9fafb;\n}\n\n#ports-map-1 .ports-btn:disabled:hover {\n\tbackground: #f9fafb;\n\ttransform: none;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n#ports-map-1 .ports-swatch { \n\tdisplay: inline-block; \n\twidth: 12px; \n\theight: 12px; \n\tmargin-right: 8px; \n\tvertical-align: middle; \n\tborder-radius: 50%; \n\tbox-shadow: 0 1px 3px rgba(0,0,0,0.12), inset 0 0 0 1px rgba(0,0,0,0.1);\n}\n\n#ports-map-1 .ports-select { \n\tpadding: 0.625rem 0.875rem; \n\tborder: 1px solid #d1d5db; \n\tborder-radius: 8px; \n\tbackground: #ffffff;\n\tfont-size: 0.925rem;\n\tcolor: #374151;\n\ttransition: all 0.2s ease;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n#ports-map-1 .ports-select:hover, #ports-map-1 .ports-select:focus {\n\tborder-color: #3b82f6;\n\toutline: none;\n\tbox-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n#ports-map-1 .ports-btn { \n\tpadding: 0.625rem 1rem; \n\tborder: 1px solid #d1d5db; \n\tborder-radius: 8px; \n\tbackground: linear-gradient(to bottom, #ffffff, #f9fafb);\n\tcursor: pointer; \n\tfont-size: 0.925rem;\n\tfont-weight: 500;\n\tcolor: #374151;\n\ttransition: all 0.2s ease;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n#ports-map-1 .ports-btn:hover {\n\tbackground: linear-gradient(to bottom, #f9fafb, #f3f4f6);\n\tborder-color: #9ca3af;\n\ttransform: translateY(-1px);\n\tbox-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n#ports-map-1 .ports-btn:focus {\n\toutline: none;\n\tborder-color: #3b82f6;\n\tbox-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n#ports-map-1 .ports-btn:active {\n\ttransform: translateY(0);\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n\n#ports-map-1 .ports-map { \n\theight: 550px; \n\tborder-radius: 12px; \n\toverflow: hidden;\n\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n\tborder: 1px solid #e2e8f0;\n}\n\n#ports-map-1 .ports-attrib { \n\tmargin-top: 1rem; \n\tfont-size: 0.8rem; \n\tcolor: #6b7280;\n\ttext-align: center;\n\tpadding: 0.75rem;\n\tbackground: #f8fafc;\n\tborder-radius: 6px;\n\tborder: 1px solid #e2e8f0;\n}\n\n\/* Enhanced Leaflet controls styling *\/\n#ports-map-1 .leaflet-control-layers { \n\tborder-radius: 8px;\n\tborder: 1px solid #e2e8f0;\n\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n\tbackground: white;\n}\n\n#ports-map-1 .leaflet-control-layers-toggle {\n\tbackground-image: none;\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 8px;\n}\n\n#ports-map-1 .leaflet-control-layers-toggle:after {\n\tcontent: '\u2693';\n\tfont-size: 18px;\n\tline-height: 36px;\n\ttext-align: center;\n\tdisplay: block;\n}\n\n#ports-map-1 .leaflet-control-layers-expanded { \n\tmax-height: 85vh; \n\toverflow: auto;\n\tpadding: 0.75rem;\n\tmin-width: 300px;\n\tmax-width: 320px;\n}\n\n#ports-map-1 .leaflet-control-layers label {\n\tmargin-bottom: 0.5rem;\n\tdisplay: block;\n\tfont-size: 0.9rem;\n}\n\n#ports-map-1 .leaflet-control-zoom {\n\tborder-radius: 8px;\n\tborder: 1px solid #e2e8f0;\n\tbox-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n#ports-map-1 .leaflet-control-zoom a {\n\tborder-radius: 0;\n\tborder-bottom: 1px solid #e2e8f0;\n}\n\n#ports-map-1 .leaflet-control-zoom a:first-child {\n\tborder-top-left-radius: 7px;\n\tborder-top-right-radius: 7px;\n}\n\n#ports-map-1 .leaflet-control-zoom a:last-child {\n\tborder-bottom-left-radius: 7px;\n\tborder-bottom-right-radius: 7px;\n\tborder-bottom: none;\n}\n<\/style>\n\n<script>\n(function(){\n\tconst wrapperId = 'ports-map-1';\n\tconst mapId = 'ports-map-1-map';\n\tconst serviceRoot = 'https:\/\/services.arcgis.com\/JJzESW51TqeY9uat\/ArcGIS\/rest\/services\/';\n\n\t\/\/ Dependency guards: load Leaflet and Esri-Leaflet only if missing\n\tfunction loadStyleOnce(href){\n\t\tif ([...document.querySelectorAll('link[rel=\"stylesheet\"]').values()].some(l => (l.href||'').includes('leaflet.css'))) return Promise.resolve();\n\t\treturn new Promise(resolve => {\n\t\t\tconst link = document.createElement('link');\n\t\t\tlink.rel = 'stylesheet';\n\t\t\tlink.href = 'https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css';\n\t\t\tlink.onload = () => resolve();\n\t\t\tdocument.head.appendChild(link);\n\t\t});\n\t}\n\tfunction loadScriptOnce(src, test){\n\t\tif (test()) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst s = document.createElement('script');\n\t\t\ts.src = src;\n\t\t\ts.async = true;\n\t\t\ts.onload = () => resolve();\n\t\t\ts.onerror = () => reject(new Error('Failed to load '+src));\n\t\t\tdocument.head.appendChild(s);\n\t\t});\n\t}\n\tfunction ensureDeps(){\n\t\treturn loadStyleOnce()\n\t\t\t.then(() => loadScriptOnce('https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js', () => !!window.L))\n\t\t\t.then(() => loadScriptOnce('https:\/\/unpkg.com\/esri-leaflet@3.0.12\/dist\/esri-leaflet.js', () => !!(window.L && window.L.esri)));\n\t}\n\n\tfunction init(){\n\t\tconst container = document.getElementById(mapId);\n\t\tif (!container) return;\n\n\t\tconst map = L.map(container, {\n\t\t\tzoomControl: true,\n\t\t\tattributionControl: true\n\t\t}).setView([54.5, -2.5], 6);\n\n\t\tconst osm = L.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', {\n\t\t\tmaxZoom: 19,\n\t\t\tattribution: '&copy; OpenStreetMap contributors'\n\t\t}).addTo(map);\n\n\t\tconst satellite = L.tileLayer('https:\/\/server.arcgisonline.com\/ArcGIS\/rest\/services\/World_Imagery\/MapServer\/tile\/{z}\/{y}\/{x}', {\n\t\t\tmaxZoom: 19,\n\t\t\tattribution: '&copy; Esri, Maxar, Earthstar Geographics, and the GIS User Community'\n\t\t});\n\n\t\t\/\/ Port layers URLs\n\t\tconst urls = {\n\t\t\tallPorts: serviceRoot + 'UK_Port_Landings_2023_WFL1\/FeatureServer\/0',\n\t\t\ttop20Weight: serviceRoot + 'UK_Port_Landings_2023_WFL1\/FeatureServer\/1',\n\t\t\ttop20Value: serviceRoot + 'UK_Port_Landings_2023_WFL1\/FeatureServer\/2'\n\t\t};\n\n\t\t\/\/ Global variables for multi-feature selection\n\t\tlet selectedFeatures = [];\n\t\tlet selectedLayers = [];\n\n\t\t\/\/ Format conversion functions\n\n\n\t\tfunction toKML(features) {\n\t\t\tif (!Array.isArray(features)) features = [features];\n\t\t\t\n\t\t\tlet placemarks = '';\n\t\t\tfeatures.forEach(feature => {\n\t\t\t\tconst coords = feature.geometry.coordinates;\n\t\t\t\tconst name = feature.properties.Name || 'UK Port';\n\t\t\t\t\n\t\t\t\tif (feature.geometry.type === 'Point') {\n\t\t\t\t\tplacemarks += `\n\t\t<Placemark>\n\t\t\t<name>${name}<\/name>\n\t\t\t<Point>\n\t\t\t\t<coordinates>${coords[0]},${coords[1]},0<\/coordinates>\n\t\t\t<\/Point>\n\t\t<\/Placemark>`;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<kml xmlns=\"http:\/\/www.opengis.net\/kml\/2.2\">\n\t<Document>${placemarks}\n\t<\/Document>\n<\/kml>`;\n\t\t}\n\n\t\tfunction toGPX(features) {\n\t\t\tif (!Array.isArray(features)) features = [features];\n\t\t\t\n\t\t\tlet waypoints = '';\n\t\t\tfeatures.forEach(feature => {\n\t\t\t\tconst name = feature.properties.Name || 'UK Port';\n\t\t\t\tconst coords = feature.geometry.coordinates;\n\t\t\t\t\n\t\t\t\tif (feature.geometry.type === 'Point') {\n\t\t\t\t\twaypoints += `\n\t<wpt lat=\"${coords[1]}\" lon=\"${coords[0]}\">\n\t\t<name>${name}<\/name>\n\t<\/wpt>`;\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<gpx version=\"1.1\" creator=\"UK Port Landings Map\" xmlns=\"http:\/\/www.topografix.com\/GPX\/1\/1\">${waypoints}\n<\/gpx>`;\n\t\t}\n\n\t\tfunction toGeoJSON(features) {\n\t\t\tif (!Array.isArray(features)) return JSON.stringify(features, null, 2);\n\t\t\t\n\t\t\treturn JSON.stringify({\n\t\t\t\ttype: \"FeatureCollection\",\n\t\t\t\tfeatures: features\n\t\t\t}, null, 2);\n\t\t}\n\n\t\tfunction downloadFile(content, filename, mimeType) {\n\t\t\tconst blob = new Blob([content], { type: mimeType });\n\t\t\tconst url = URL.createObjectURL(blob);\n\t\t\tconst a = document.createElement('a');\n\t\t\ta.href = url;\n\t\t\ta.download = filename;\n\t\t\tdocument.body.appendChild(a);\n\t\t\ta.click();\n\t\t\tdocument.body.removeChild(a);\n\t\t\tURL.revokeObjectURL(url);\n\t\t}\n\n\t\tfunction selectFeature(feature, layer, layerName) {\n\t\t\t\/\/ Check if feature is already selected\n\t\t\tconst featureId = feature.properties.OBJECTID || feature.properties.FID || Math.random();\n\t\t\tconst existingIndex = selectedFeatures.findIndex(f => \n\t\t\t\t(f.properties.OBJECTID && f.properties.OBJECTID === featureId) ||\n\t\t\t\t(f.properties.FID && f.properties.FID === featureId)\n\t\t\t);\n\t\t\t\n\t\t\tif (existingIndex >= 0) {\n\t\t\t\t\/\/ Deselect if already selected\n\t\t\t\tselectedFeatures.splice(existingIndex, 1);\n\t\t\t\tselectedLayers.splice(existingIndex, 1);\n\t\t\t\tlayer.setStyle({ radius: 6, weight: 2 });\n\t\t\t} else {\n\t\t\t\t\/\/ Add to selection\n\t\t\t\tselectedFeatures.push(feature);\n\t\t\t\tselectedLayers.push(layer);\n\t\t\t\t\n\t\t\t\t\/\/ Highlight selected feature\n\t\t\t\tlayer.setStyle({ radius: 10, weight: 3, color: '#dc2626' });\n\t\t\t\t\n\n\t\t\t}\n\t\t\t\n\t\t\t\/\/ Update download controls\n\t\t\tupdateDownloadControls();\n\t\t}\n\n\t\tfunction updateDownloadControls() {\n\t\t\tconst downloadInfo = document.querySelector('#ports-map-1 .ports-download-info');\n\t\t\tconst selectedText = downloadInfo.querySelector('.ports-selected-text');\n\t\t\tconst downloadBtns = downloadInfo.querySelectorAll('.ports-download-btn');\n\t\t\tconst clearBtn = downloadInfo.querySelector('.ports-clear-selection');\n\t\t\t\n\t\t\tif (selectedFeatures.length === 0) {\n\t\t\t\tselectedText.textContent = 'Click ports to select multiple';\n\t\t\t\tdownloadInfo.classList.remove('active');\n\t\t\t\tdownloadBtns.forEach(btn => btn.disabled = true);\n\t\t\t\tclearBtn.disabled = true;\n\t\t\t} else if (selectedFeatures.length === 1) {\n\t\t\t\tconst portName = selectedFeatures[0].properties.Name || 'Unnamed Port';\n\t\t\t\tselectedText.textContent = `${portName} selected`;\n\t\t\t\tdownloadInfo.classList.add('active');\n\t\t\t\tdownloadBtns.forEach(btn => btn.disabled = false);\n\t\t\t\tclearBtn.disabled = false;\n\t\t\t} else {\n\t\t\t\tselectedText.textContent = `${selectedFeatures.length} ports selected`;\n\t\t\t\tdownloadInfo.classList.add('active');\n\t\t\t\tdownloadBtns.forEach(btn => btn.disabled = false);\n\t\t\t\tclearBtn.disabled = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction clearSelection() {\n\t\t\t\/\/ Reset all selected layers\n\t\t\tselectedLayers.forEach(layer => {\n\t\t\t\tlayer.setStyle({ radius: 6, weight: 2 });\n\t\t\t});\n\t\t\t\n\t\t\tselectedFeatures = [];\n\t\t\tselectedLayers = [];\n\t\t\t\n\t\t\t\/\/ Update download controls\n\t\t\tupdateDownloadControls();\n\t\t}\n\n\t\t\/\/ Port layers with click handlers and distinct styling\n\t\tconst allPortsLayer = L.esri.featureLayer({\n\t\t\turl: urls.allPorts,\n\t\t\tpointToLayer: function(feature, latlng) {\n\t\t\t\treturn L.circleMarker(latlng, {\n\t\t\t\t\tradius: 6,\n\t\t\t\t\tfillColor: '#64748b',\n\t\t\t\t\tcolor: '#475569',\n\t\t\t\t\tweight: 2,\n\t\t\t\t\topacity: 1,\n\t\t\t\t\tfillOpacity: 0.8\n\t\t\t\t});\n\t\t\t}\n\t\t}).on('click', e => selectFeature(e.layer.feature, e.layer, 'All Ports'));\n\n\t\tconst top20WeightLayer = L.esri.featureLayer({\n\t\t\turl: urls.top20Weight,\n\t\t\tpointToLayer: function(feature, latlng) {\n\t\t\t\treturn L.circleMarker(latlng, {\n\t\t\t\t\tradius: 8,\n\t\t\t\t\tfillColor: '#f59e0b',\n\t\t\t\t\tcolor: '#d97706',\n\t\t\t\t\tweight: 2,\n\t\t\t\t\topacity: 1,\n\t\t\t\t\tfillOpacity: 0.9\n\t\t\t\t});\n\t\t\t}\n\t\t}).on('click', e => selectFeature(e.layer.feature, e.layer, 'Top 20 Weight'));\n\n\t\tconst top20ValueLayer = L.esri.featureLayer({\n\t\t\turl: urls.top20Value,\n\t\t\tpointToLayer: function(feature, latlng) {\n\t\t\t\treturn L.circleMarker(latlng, {\n\t\t\t\t\tradius: 10,\n\t\t\t\t\tfillColor: '#10b981',\n\t\t\t\t\tcolor: '#059669',\n\t\t\t\t\tweight: 2,\n\t\t\t\t\topacity: 1,\n\t\t\t\t\tfillOpacity: 0.9\n\t\t\t\t});\n\t\t\t}\n\t\t}).on('click', e => selectFeature(e.layer.feature, e.layer, 'Top 20 Value'));\n\n\t\t\/\/ Enhanced layer labels with color swatches and descriptions\n\t\tfunction escAttr(str){ return String(str).replace(\/&\/g,'&amp;').replace(\/\"\/g,'&quot;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;'); }\n\t\tfunction layerLabel(text, color, desc){\n\t\t\tconst sw = `background:${color};border:1px solid ${color};`;\n\t\t\treturn `<div style=\"margin-bottom:8px;\"><div><span class=\\\"ports-swatch\\\" style=\\\"${sw}\\\"><\/span><span class=\\\"ports-layer-text\\\">${escAttr(text)}<\/span><\/div><div style=\\\"font-size:0.8em;color:#6b7280;margin-left:20px;line-height:1.3;\\\">${escAttr(desc)}<\/div><\/div>`;\n\t\t}\n\n\t\tconst baseMaps = {\n\t\t\t'OpenStreetMap': osm,\n\t\t\t'Satellite': satellite\n\t\t};\n\n\t\tconst overlays = {\n\t\t\t[layerLabel('UK Ports (All)', '#64748b', 'All UK ports included in the 2023 fish landings dataset.')]: allPortsLayer,\n\t\t\t[layerLabel('Top 20 by Weight (kt)', '#f59e0b', 'Top 20 UK ports ranked by total live weight of fish landings in kilotonnes.')]: top20WeightLayer,\n\t\t\t[layerLabel('Top 20 by Value (\u00a3M)', '#10b981', 'Top 20 UK ports ranked by total value of fish landings in millions of pounds.')]: top20ValueLayer\n\t\t};\n\n\t\tL.control.layers(baseMaps, overlays, { collapsed: true }).addTo(map);\n\n\t\t\/\/ Wire up controls (near me)\n\t\tconst root = document.getElementById(wrapperId);\n\t\tconst nearBtn = root.querySelector('.ports-near-btn');\n\n\t\tnearBtn.addEventListener('click', () => {\n\t\t\tif (!navigator.geolocation) return alert('Geolocation not supported on this browser.');\n\t\t\tnavigator.geolocation.getCurrentPosition((pos) => {\n\t\t\t\tmap.setView([pos.coords.latitude, pos.coords.longitude], 13);\n\t\t\t}, (err) => {\n\t\t\t\tconsole.warn('Geolocation error', err);\n\t\t\t\talert('Unable to retrieve your location.');\n\t\t\t}, { enableHighAccuracy: true, timeout: 8000, maximumAge: 300000 });\n\t\t});\n\n\t\t\/\/ Download button handlers\n\t\tconst downloadBtns = root.querySelectorAll('.ports-download-btn');\n\t\tdownloadBtns.forEach(btn => {\n\t\t\tbtn.addEventListener('click', () => {\n\t\t\t\tif (selectedFeatures.length === 0) return;\n\t\t\t\t\n\t\t\t\tconst format = btn.dataset.format;\n\t\t\t\tconst baseName = selectedFeatures.length === 1 \n\t\t\t\t\t? (selectedFeatures[0].properties.Name || 'uk_port')\n\t\t\t\t\t: `uk_ports_${selectedFeatures.length}`;\n\t\t\t\tconst safeName = String(baseName).replace(\/[^a-zA-Z0-9]\/g, '_').toLowerCase();\n\t\t\t\t\n\t\t\t\tlet content, filename, mimeType;\n\t\t\t\t\n\t\t\t\tswitch(format) {\n\t\t\t\t\tcase 'geojson':\n\t\t\t\t\t\tcontent = toGeoJSON(selectedFeatures);\n\t\t\t\t\t\tfilename = `${safeName}.geojson`;\n\t\t\t\t\t\tmimeType = 'application\/geo+json';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'kml':\n\t\t\t\t\t\tcontent = toKML(selectedFeatures);\n\t\t\t\t\t\tfilename = `${safeName}.kml`;\n\t\t\t\t\t\tmimeType = 'application\/vnd.google-earth.kml+xml';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'gpx':\n\t\t\t\t\t\tcontent = toGPX(selectedFeatures);\n\t\t\t\t\t\tfilename = `${safeName}.gpx`;\n\t\t\t\t\t\tmimeType = 'application\/gpx+xml';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdownloadFile(content, filename, mimeType);\n\t\t\t});\n\t\t});\n\n\t\t\/\/ Clear selection handler\n\t\tconst clearBtn = root.querySelector('.ports-clear-selection');\n\t\tclearBtn.addEventListener('click', clearSelection);\n\n\t}\n\n\tensureDeps().then(init).catch((e) => {\n\t\tconsole.error('UK Port Landings map failed to initialize', e);\n\t});\n})();\n<\/script>\n\n\n\n\n<h2 class=\"wp-block-heading\">How to Use the UK Ports Fish Landings Map<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Getting Started<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Navigate the Map<\/strong>: Use your mouse to pan around the UK and explore different coastal regions<\/li>\n\n\n\n<li><strong>Find Your Location<\/strong>: Click &#8220;Near me&#8221; to center the map on your current position<\/li>\n\n\n\n<li><strong>Zoom and Explore<\/strong>: Use + and &#8211; buttons or mouse wheel to zoom between national and local port views<\/li>\n\n\n\n<li><strong>Layer Selection<\/strong>: Toggle between different port categories using the layer control panel<\/li>\n\n\n\n<li><strong>Switch Views<\/strong>: Choose between standard street map and satellite imagery for geographical context<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Map Controls<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Near Me<\/strong>: Automatically locate and center the map on your current position<\/li>\n\n\n\n<li><strong>Base Maps<\/strong>: Switch between OpenStreetMap and high-resolution satellite imagery<\/li>\n\n\n\n<li><strong>Zoom Controls<\/strong>: Use + and &#8211; buttons or mouse wheel to zoom in and out<\/li>\n\n\n\n<li><strong>Layer Toggles<\/strong>: Show or hide different port categories using the control panel<\/li>\n\n\n\n<li><strong>Pan and Explore<\/strong>: Click and drag to move around the map<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding the Port Categories<\/h3>\n\n\n\n<p>The map displays three distinct categories of fishing ports, each color-coded for easy identification:<\/p>\n\n\n\n<p><strong>UK Ports (All) &#8211; Gray Markers<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shows all 1,212 UK port locations with recorded fish landings in 2023<\/li>\n\n\n\n<li>Includes major commercial harbors and smaller fishing communities<\/li>\n\n\n\n<li>Provides the most comprehensive coverage of the UK fishing fleet&#8217;s landing sites<\/li>\n\n\n\n<li>Represents every location where commercial fish landings were officially recorded<\/li>\n<\/ul>\n\n\n\n<p><strong>Top 20 by Weight (kt) &#8211; Orange Markers<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The 20 ports landing the highest volumes of fish by live weight<\/li>\n\n\n\n<li>Measured in kilotonnes (1,000 tonnes)<\/li>\n\n\n\n<li>Represents the backbone of UK fish production for food processing and export<\/li>\n<\/ul>\n\n\n\n<p><strong>Top 20 by Value (\u00a3M) &#8211; Green Markers<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The 20 ports generating the highest commercial value from fish landings<\/li>\n\n\n\n<li>Measured in millions of pounds sterling<\/li>\n\n\n\n<li>Often features ports landing premium species or high-value shellfish<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Multiple Port Selection and Download<\/h3>\n\n\n\n<p>A unique feature allowing detailed analysis and data export:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Click on ports<\/strong> to select multiple sites (selected ports are highlighted in red)<\/li>\n\n\n\n<li><strong>Select individual ports<\/strong> or multiple ports across different categories<\/li>\n\n\n\n<li><strong>View selection summary<\/strong> showing number of ports selected<\/li>\n\n\n\n<li><strong>Download precise data<\/strong> for your selected ports<\/li>\n<\/ol>\n\n\n\n<p><strong>Download Options:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GeoJSON<\/strong>: For data analysis, GIS software, and research applications<\/li>\n\n\n\n<li><strong>KML<\/strong>: For Google Earth, maritime navigation systems, and mapping software<\/li>\n\n\n\n<li><strong>GPX<\/strong>: For GPS devices and marine navigation equipment<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Practical Applications<\/h3>\n\n\n\n<p><strong>Industry Analysis<\/strong>: Compare port performance, identify market trends, and analyze regional fishing strengths<\/p>\n\n\n\n<p><strong>Academic Research<\/strong>: Study maritime economics, coastal geography, and fishing industry distribution<\/p>\n\n\n\n<p><strong>Navigation Planning<\/strong>: Use GPS downloads for marine navigation and port approach planning<\/p>\n\n\n\n<p><strong>Business Intelligence<\/strong>: Market analysis for seafood processing, distribution, and investment decisions<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Top UK Fishing Ports: Industry Leaders by Weight and Value<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding the Rankings<\/h3>\n\n\n\n<p>UK fishing ports vary dramatically in their specializations and economic impact. Some ports excel in landing high volumes of fish for processing and export, while others focus on premium species commanding higher market prices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Major Port Categories by Region<\/h3>\n\n\n\n<p><strong>Scotland<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dominates both weight and value rankings<\/li>\n\n\n\n<li>Specializes in pelagic species (mackerel, herring) and demersal fish (haddock, whiting)<\/li>\n\n\n\n<li>Key ports include Aberdeen, Lerwick, Fraserburgh, and Peterhead<\/li>\n<\/ul>\n\n\n\n<p><strong>England<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Strong in shellfish and premium fish species<\/li>\n\n\n\n<li>Major ports in Cornwall, Devon, Yorkshire, and Humberside<\/li>\n\n\n\n<li>Brixham, Newlyn, Plymouth, and Grimsby feature prominently<\/li>\n<\/ul>\n\n\n\n<p><strong>Wales<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Significant shellfish and mixed fisheries<\/li>\n\n\n\n<li>Milford Haven and smaller Welsh ports contribute substantially<\/li>\n<\/ul>\n\n\n\n<p><strong>Northern Ireland<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Important for Irish Sea fisheries<\/li>\n\n\n\n<li>Portavogie and Kilkeel are major landing centers<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Weight vs. Value: Understanding the Economics<\/h3>\n\n\n\n<p><strong>High Weight, Lower Value Ports<\/strong> typically handle:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Industrial species for fishmeal and processing<\/li>\n\n\n\n<li>Large-scale pelagic fisheries (mackerel, herring)<\/li>\n\n\n\n<li>Fish for export to European processing centers<\/li>\n<\/ul>\n\n\n\n<p><strong>High Value, Moderate Weight Ports<\/strong> often specialize in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Premium white fish (sole, turbot, sea bass)<\/li>\n\n\n\n<li>High-value shellfish (lobster, crab, scallops)<\/li>\n\n\n\n<li>Fresh fish for restaurant and retail markets<\/li>\n\n\n\n<li>Species commanding premium prices per kilogram<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">UK Fishing Industry Economics and Trends<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Market Values and Pricing<\/h3>\n\n\n\n<p>The relationship between landing weight and commercial value reveals important market dynamics:<\/p>\n\n\n\n<p><strong>Price per Kilogram Indicators<\/strong>: Ports showing high value but moderate weight often land premium species commanding \u00a35-15+ per kilogram, compared to \u00a31-3 per kilogram for bulk processing fish.<\/p>\n\n\n\n<p><strong>Seasonal Variations<\/strong>: Fish landing values fluctuate significantly based on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quota allocations and fishing opportunities<\/li>\n\n\n\n<li>Seasonal availability of different species<\/li>\n\n\n\n<li>Market demand and international trade conditions<\/li>\n\n\n\n<li>Weather and fishing conditions affecting fleet operations<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Post-Brexit Fishing Industry<\/h3>\n\n\n\n<p>The 2023 data reflects the UK fishing industry following Brexit transition arrangements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Quota Management<\/strong>: UK-controlled fishing quotas in territorial waters<\/li>\n\n\n\n<li><strong>Trade Relationships<\/strong>: New arrangements with EU markets for fish exports<\/li>\n\n\n\n<li><strong>Fleet Distribution<\/strong>: Changes in fishing patterns and port usage<\/li>\n\n\n\n<li><strong>Market Access<\/strong>: Updated arrangements for EU vessel access to UK ports<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Sustainability and Management<\/h3>\n\n\n\n<p>UK fish landings operate under strict management regimes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Total Allowable Catches (TACs)<\/strong> limiting species-specific landings<\/li>\n\n\n\n<li><strong>Marine Protected Areas<\/strong> affecting fishing locations and methods<\/li>\n\n\n\n<li><strong>Vessel Monitoring Systems<\/strong> tracking fleet movements and catches<\/li>\n\n\n\n<li><strong>Landing Obligation<\/strong> requiring all caught fish to be landed and counted<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Regional Fishing Port Analysis<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Scotland: Industrial Powerhouse<\/h3>\n\n\n\n<p><strong>Characteristics<\/strong>: Scotland dominates UK fish landings, typically accounting for 60-70% of total UK catch by weight and value.<\/p>\n\n\n\n<p><strong>Key Strengths<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Large-scale pelagic fisheries (mackerel, herring)<\/li>\n\n\n\n<li>Established white fish processing industry<\/li>\n\n\n\n<li>Modern port facilities and cold storage<\/li>\n\n\n\n<li>Proximity to major North Sea and Atlantic fishing grounds<\/li>\n<\/ul>\n\n\n\n<p><strong>Economic Impact<\/strong>: Scottish fishing generates over \u00a3500 million annually, supporting thousands of jobs in remote coastal communities.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">England: Diversity and Premium Markets<\/h3>\n\n\n\n<p><strong>Characteristics<\/strong>: English ports show greater diversity in species and market focus, with stronger emphasis on fresh fish and shellfish.<\/p>\n\n\n\n<p><strong>Regional Variations<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Southwest (Cornwall\/Devon)<\/strong>: Premium fish, tourists markets, day-boat fishing<\/li>\n\n\n\n<li><strong>Southeast (Kent\/Sussex)<\/strong>: Channel fisheries, shellfish, continental markets<\/li>\n\n\n\n<li><strong>Northeast (Yorkshire\/Northumberland)<\/strong>: Mixed fisheries, processing industry<\/li>\n\n\n\n<li><strong>Northwest<\/strong>: Irish Sea fisheries, shellfish specialization<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Wales and Northern Ireland<\/h3>\n\n\n\n<p><strong>Wales<\/strong>: Significant shellfish production, particularly cockles, mussels, and crabs. Mixed fisheries serving both local and international markets.<\/p>\n\n\n\n<p><strong>Northern Ireland<\/strong>: Important for Irish Sea fisheries, with strong cross-border trade relationships and specialized fishing communities.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions (FAQ)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Data and Statistics<\/h3>\n\n\n\n<p><strong>Q: How many UK fishing ports are included in this map?<\/strong> A: The map includes <strong>1,212 port locations<\/strong> across the United Kingdom where commercial fish landings were recorded in 2023. This represents the most comprehensive database of UK fishing ports available, from major commercial harbors to small coastal landing sites.<\/p>\n\n\n\n<p><strong>Q: What time period does this fish landings data cover?<\/strong> A: The map shows comprehensive UK fish landings data for the complete 2023 calendar year, providing the most recent full-year statistics available.<\/p>\n\n\n\n<p><strong>Q: How is fish landing weight measured?<\/strong> A: Fish landings are measured in <strong>live weight equivalent<\/strong> in kilotonnes (kt). One kilotonne equals 1,000 metric tonnes. This represents the weight of fish as caught, before any processing or filleting.<\/p>\n\n\n\n<p><strong>Q: How is fish landing value calculated?<\/strong> A: Values are shown in <strong>millions of pounds sterling (\u00a3M)<\/strong> and represent the <strong>first sale value<\/strong> &#8211; the price paid to fishermen at the point of landing, before any processing, transport, or retail markup.<\/p>\n\n\n\n<p><strong>Q: Which ports are included in the &#8220;Top 20&#8221; rankings?<\/strong> A: The Top 20 rankings include the highest-performing ports by either total weight (kilotonnes) or total value (\u00a3 millions) of all fish species combined for 2023.<\/p>\n\n\n\n<p><strong>Q: Does this include all types of seafood?<\/strong> A: Yes, the data includes all commercial marine landings: finfish (cod, haddock, mackerel, etc.), shellfish (crabs, lobsters, scallops), and other marine species landed by UK-registered vessels and foreign vessels landing into UK ports.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Using the Map<\/h3>\n\n\n\n<p><strong>Q: How do I select multiple ports for comparison?<\/strong> A: Click on any port marker to select it (it will turn red and increase in size). You can continue clicking additional ports to build a selection. The download controls will show how many ports are selected.<\/p>\n\n\n\n<p><strong>Q: Can I download data for individual ports?<\/strong> A: Yes, click on a single port to select it, then use the download buttons to get that port&#8217;s location data in GeoJSON, KML, or GPX format for use in other applications.<\/p>\n\n\n\n<p><strong>Q: How do I clear my port selection?<\/strong> A: Click the &#8220;Clear&#8221; button in the download controls to deselect all ports and reset the map markers to their original colors and sizes.<\/p>\n\n\n\n<p><strong>Q: What&#8217;s the difference between the download formats?<\/strong> A:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GeoJSON<\/strong>: Best for data analysis, research, and GIS software like QGIS<\/li>\n\n\n\n<li><strong>KML<\/strong>: Compatible with Google Earth, Google Maps, and many navigation apps<\/li>\n\n\n\n<li><strong>GPX<\/strong>: Standard format for GPS devices and marine navigation equipment<\/li>\n<\/ul>\n\n\n\n<p><strong>Q: Can I see individual port statistics?<\/strong> A: The current map shows port locations and categories. For detailed landing statistics by port, refer to official Marine Management Organisation (MMO) or Marine Scotland statistical publications.<\/p>\n\n\n\n<p><strong>Q: How do I find fishing ports near my location?<\/strong> A: Use the &#8220;Near me&#8221; button to center the map on your current location, then zoom in to see nearby ports. Coastal areas will show various categories of fishing ports.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Industry and Economic Context<\/h3>\n\n\n\n<p><strong>Q: Why do some ports have high value but lower weight?<\/strong> A: These ports typically specialize in <strong>premium species<\/strong> that command higher prices per kilogram &#8211; such as sole, turbot, lobster, or day-boat caught fish. Quality and freshness often matter more than volume for these markets.<\/p>\n\n\n\n<p><strong>Q: Why do some ports have high weight but lower total value?<\/strong> A: These ports often handle <strong>industrial fisheries<\/strong> &#8211; large volumes of species like mackerel, herring, or fish destined for processing rather than fresh markets. These species have lower per-kilogram values but generate revenue through volume.<\/p>\n\n\n\n<p><strong>Q: How has Brexit affected UK fishing ports?<\/strong> A: Post-Brexit changes include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>UK quota control<\/strong> in territorial waters<\/li>\n\n\n\n<li><strong>New trade arrangements<\/strong> with EU markets<\/li>\n\n\n\n<li><strong>Vessel licensing changes<\/strong> affecting port access<\/li>\n\n\n\n<li><strong>Regulatory differences<\/strong> in fisheries management The 2023 data reflects the industry under these new arrangements.<\/li>\n<\/ul>\n\n\n\n<p><strong>Q: Which regions dominate UK fish landings?<\/strong> A: <strong>Scotland<\/strong> typically accounts for 60-70% of UK fish landings by both weight and value, followed by England, Northern Ireland, and Wales. This reflects Scotland&#8217;s extensive coastline, major fishing ports, and proximity to productive fishing grounds.<\/p>\n\n\n\n<p><strong>Q: What are the most valuable fish species in UK landings?<\/strong> A: High-value species typically include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Shellfish<\/strong>: Lobster, crab, scallops<\/li>\n\n\n\n<li><strong>Premium finfish<\/strong>: Sole, turbot, sea bass, wild salmon<\/li>\n\n\n\n<li><strong>Traditional favorites<\/strong>: Cod, haddock (when available under quota)<\/li>\n\n\n\n<li><strong>Export species<\/strong>: Langoustines, razor clams, whelks<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Sustainability and Regulations<\/h3>\n\n\n\n<p><strong>Q: Are UK fish landings sustainable?<\/strong> A: UK fisheries operate under strict <strong>quota systems<\/strong> and <strong>scientific management<\/strong> designed to ensure long-term sustainability. Total Allowable Catches (TACs) are set based on scientific stock assessments, though sustainability varies by species and fishing area.<\/p>\n\n\n\n<p><strong>Q: What regulations govern UK fish landings?<\/strong> A: Key regulations include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Total Allowable Catches (TACs)<\/strong> for quota species<\/li>\n\n\n\n<li><strong>Technical measures<\/strong> (minimum sizes, gear restrictions)<\/li>\n\n\n\n<li><strong>Marine Protected Areas<\/strong> restricting fishing in sensitive zones<\/li>\n\n\n\n<li><strong>Vessel licensing and monitoring<\/strong> requirements<\/li>\n\n\n\n<li><strong>Landing obligation<\/strong> requiring all caught fish to be landed<\/li>\n<\/ul>\n\n\n\n<p><strong>Q: How are fishing quotas allocated between ports?<\/strong> A: Quotas are allocated to <strong>vessel owners<\/strong> rather than ports. However, ports with larger fishing fleets or vessels with substantial quota holdings tend to show higher landing volumes.<\/p>\n\n\n\n<p><strong>Q: What happens to fish that can&#8217;t be sold fresh?<\/strong> A: Fish not suitable for fresh markets may be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Processed<\/strong> into frozen products, fish fingers, or prepared foods<\/li>\n\n\n\n<li><strong>Exported<\/strong> to international processing facilities<\/li>\n\n\n\n<li><strong>Used for fishmeal<\/strong> and fish oil production<\/li>\n\n\n\n<li><strong>Sold to aquaculture<\/strong> as feed for fish farming<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Research and Commercial Applications<\/h3>\n\n\n\n<p><strong>Q: Can I use this data for academic research?<\/strong> A: The map provides port location and category information. For detailed research, access official statistics from:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Marine Management Organisation (MMO)<\/strong> for English waters<\/li>\n\n\n\n<li><strong>Marine Scotland<\/strong> for Scottish fisheries data<\/li>\n\n\n\n<li><strong>Welsh Government<\/strong> for Wales fisheries statistics<\/li>\n\n\n\n<li><strong>Northern Ireland Department<\/strong> for NI fisheries data<\/li>\n<\/ul>\n\n\n\n<p><strong>Q: How can seafood businesses use this information?<\/strong> A: Commercial applications include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Supplier identification<\/strong>: Finding ports with specific fish types<\/li>\n\n\n\n<li><strong>Market analysis<\/strong>: Understanding regional fishing strengths<\/li>\n\n\n\n<li><strong>Logistics planning<\/strong>: Optimizing collection and distribution routes<\/li>\n\n\n\n<li><strong>Investment decisions<\/strong>: Identifying growing or declining fishing regions<\/li>\n<\/ul>\n\n\n\n<p><strong>Q: Is real-time fish landing data available?<\/strong> A: This map shows annual aggregate data. For real-time market information, contact individual ports or fish markets directly, or use commercial seafood trading platforms.<\/p>\n\n\n\n<p><strong>Q: How often is the data updated?<\/strong> A: Annual fish landing statistics are typically published with a 12-18 month delay to allow for data verification and processing. The 2023 data represents the most recent comprehensive statistics available.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Technical Questions<\/h3>\n\n\n\n<p><strong>Q: How accurate are the port locations?<\/strong> A: Port locations are based on official UK harbor and port registries, providing high accuracy for navigation and geographic analysis purposes.<\/p>\n\n\n\n<p><strong>Q: Can I import this data into my GIS software?<\/strong> A: Yes, use the GeoJSON download format which imports directly into most GIS applications including QGIS, ArcGIS, and other professional mapping software.<\/p>\n\n\n\n<p><strong>Q: Does the map work on mobile devices?<\/strong> A: Yes, the map is fully responsive and works on smartphones and tablets, though the download functionality works best on desktop computers for file management.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Marine Navigation and Safety<\/h3>\n\n\n\n<p><strong>Q: Can I use downloaded port locations for marine navigation?<\/strong> A: While the port locations are accurate, this map is <strong>not suitable for marine navigation<\/strong>. Always use official <strong>Admiralty Charts<\/strong> and approved marine navigation equipment for safe passage and harbor entry.<\/p>\n\n\n\n<p><strong>Q: Does the map show port approach information?<\/strong> A: No, this map shows port locations only. For <strong>harbor approaches<\/strong>, <strong>depth information<\/strong>, and <strong>navigation aids<\/strong>, consult official marine charts and port authorities.<\/p>\n\n\n\n<p><strong>Q: Are port facilities and services shown?<\/strong> A: The map focuses on fish landing statistics rather than port facilities. For information about <strong>fuel<\/strong>, <strong>supplies<\/strong>, <strong>repairs<\/strong>, and <strong>berthing<\/strong>, contact individual port authorities directly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Data Sources and Authority<\/h3>\n\n\n\n<p><strong>Q: Who collects UK fish landings data?<\/strong> A: Fish landings data is collected by:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Marine Management Organisation (MMO)<\/strong> for England<\/li>\n\n\n\n<li><strong>Marine Scotland<\/strong> for Scottish waters<\/li>\n\n\n\n<li><strong>Welsh Government<\/strong> marine teams for Wales<\/li>\n\n\n\n<li><strong>Department of Agriculture, Environment and Rural Affairs<\/strong> for Northern Ireland<\/li>\n<\/ul>\n\n\n\n<p><strong>Q: How is the data quality assured?<\/strong> A: Data quality measures include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Vessel monitoring systems<\/strong> tracking fishing activity<\/li>\n\n\n\n<li><strong>Electronic reporting<\/strong> of catches and landings<\/li>\n\n\n\n<li><strong>Physical inspections<\/strong> at ports by fisheries officers<\/li>\n\n\n\n<li><strong>Cross-checking<\/strong> between vessel reports and buyer records<\/li>\n\n\n\n<li><strong>Statistical validation<\/strong> against historical patterns<\/li>\n<\/ul>\n\n\n\n<p><strong>Q: Where can I find the raw data behind this map?<\/strong> A: Official statistics are published by government marine agencies and available through:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gov.uk<\/strong> marine statistics publications<\/li>\n\n\n\n<li><strong>Marine Scotland<\/strong> fisheries statistics<\/li>\n\n\n\n<li><strong>ONS (Office for National Statistics)<\/strong> economic data<\/li>\n\n\n\n<li><strong>Eurostat<\/strong> for international comparisons<\/li>\n<\/ul>\n\n\n\n<p><strong>Disclaimer<\/strong>: This mapping tool provides port locations and fish landing category information for research and industry analysis purposes. Port locations are accurate but this tool is not suitable for marine navigation &#8211; always use official Admiralty Charts for safe navigation. Fish landing statistics reflect 2023 data and may not represent current market conditions. For real-time port information, market prices, or commercial arrangements, contact individual ports and markets directly. Users are responsible for verifying current regulations, port facilities, and market conditions before making business or operational decisions.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Covering 1,212 port locations across the United Kingdom, from Scotland&#8217;s major trawling ports to England&#8217;s coastal fishing harbors, explore detailed statistics showing which ports land the most fish by both weight and commercial value<\/p>\n","protected":false},"author":1,"featured_media":19175,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","footnotes":""},"categories":[490],"tags":[],"class_list":["post-19174","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-map-tools"],"_links":{"self":[{"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/posts\/19174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/comments?post=19174"}],"version-history":[{"count":1,"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/posts\/19174\/revisions"}],"predecessor-version":[{"id":19176,"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/posts\/19174\/revisions\/19176"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/media\/19175"}],"wp:attachment":[{"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/media?parent=19174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/categories?post=19174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mapscaping.com\/wp-json\/wp\/v2\/tags?post=19174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}