{"id":181,"date":"2026-05-03T15:00:08","date_gmt":"2026-05-03T15:00:08","guid":{"rendered":"https:\/\/simplyaboard.com\/?page_id=181"},"modified":"2026-05-03T15:00:11","modified_gmt":"2026-05-03T15:00:11","slug":"plotter","status":"publish","type":"page","link":"https:\/\/simplyaboard.com\/?page_id=181","title":{"rendered":"Plotter"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" \/>\n    <title>Canarias Nautical Guide &#8211; Sistema Pro<\/title>\n\n    <!-- Leaflet CSS -->\n    <link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\" \/>\n    \n    <style>\n        \/* Mapa a pantalla completa *\/\n        body, html { margin: 0; padding: 0; height: 100%; width: 100%; overflow: hidden; }\n        #map { width: 100%; height: 100vh; background: #aad3df; }\n\n        \/* Estilo del bot\u00f3n personalizado de GPS *\/\n        .boton-gps {\n            background-color: white;\n            width: 34px;\n            height: 34px;\n            line-height: 34px;\n            text-align: center;\n            cursor: pointer;\n            border-radius: 4px;\n            border: 2px solid rgba(0,0,0,0.2);\n            font-size: 20px;\n            box-shadow: 0 1px 5px rgba(0,0,0,0.4);\n        }\n        .boton-gps:hover { background-color: #f4f4f4; }\n\n        \/* Mejorar legibilidad del selector de capas *\/\n        .leaflet-control-layers {\n            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n            font-size: 14px;\n            font-weight: bold;\n            padding: 10px;\n        }\n    <\/style>\n<\/head>\n<body>\n\n<div id=\"map\"><\/div>\n\n<!-- Leaflet JS -->\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\n\n<script>\n    \/\/ 1. INICIALIZACI\u00d3N DEL MAPA\n    \/\/ Centrado inicialmente en Santa Cruz de Tenerife\n    var map = L.map('map', {\n        center: [28.463, -16.242],\n        zoom: 14,\n        zoomControl: true\n    });\n\n    \/\/ 2. CAPA BASE: CARTA N\u00c1UTICA OFICIAL (IHM)\n    var capaIHM = L.tileLayer.wms(\"https:\/\/ideihm.covam.es\/encwms\/wms?\", {\n        layers: 'ENC',\n        format: 'image\/png',\n        transparent: true,\n        version: '1.3.0',\n        crs: L.CRS.EPSG4326,\n        attribution: \"\u00a9 COVAM \/ Armada Espa\u00f1ola\"\n    }).addTo(map);\n\n    \/\/ 3. CAPAS SUPERPUESTAS (OVERLAYS)\n\n    \/\/ Callejero Terrestre (IGN) - Con opacidad para ver el fondo\n    var capaIGN = L.tileLayer.wms(\"https:\/\/www.ign.es\/wms-inspire\/mapa-raster?\", {\n        layers: 'mtn_rasterizado',\n        format: 'image\/png',\n        transparent: true,\n        opacity: 0.6,\n        version: '1.3.0',\n        attribution: '\u00a9 IGN'\n    });\n\n    \/\/ Balizamiento y Luces (OpenSeaMap)\n    var capaLuces = L.tileLayer('https:\/\/tiles.openseamap.org\/seamark\/{z}\/{x}\/{y}.png', {\n        attribution: '\u00a9 OpenSeaMap'\n    });\n\n    \/\/ 4. SELECTOR DE CAPAS\n    var baseMaps = {\n        \"<span style='color: #002e5a'>\u2693 Carta N\u00e1utica (IHM)<\/span>\": capaIHM\n    };\n\n    var overlayMaps = {\n        \"\ud83d\uddfa\ufe0f Callejero IGN\": capaIGN,\n        \"\ud83d\udea8 Refuerzo Luces (OSM)\": capaLuces\n    };\n\n    L.control.layers(baseMaps, overlayMaps, { collapsed: false }).addTo(map);\n    L.control.scale({ imperial: false, position: 'bottomleft' }).addTo(map);\n\n    \/\/ 5. MARCADOR DE EJEMPLO: VTS TENERIFE\n    L.marker([28.472, -16.223]).addTo(map)\n        .bindPopup('<b>VTS Santa Cruz<\/b><br>Canal 14 VHF<br>Punto de reporte obligatorio.');\n\n    \/\/ 6. FUNCIONALIDAD GPS\n    \n    \/\/ Variables para el marcador de posici\u00f3n\n    var markerPosicion, circuloPrecision;\n\n    \/\/ Crear bot\u00f3n personalizado de GPS\n    var gpsControl = L.Control.extend({\n        options: { position: 'topleft' },\n        onAdd: function (map) {\n            var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control boton-gps');\n            container.innerHTML = '\ud83c\udfaf';\n            container.title = \"Activar mi GPS\";\n\n            container.onclick = function(e) {\n                e.stopPropagation(); \/\/ Evita que el clic afecte al mapa\n                map.locate({\n                    setView: true, \n                    maxZoom: 16, \n                    watch: true, \n                    enableHighAccuracy: true\n                });\n            };\n            return container;\n        }\n    });\n    map.addControl(new gpsControl());\n\n    \/\/ Evento: Posici\u00f3n encontrada\n    map.on('locationfound', function(e) {\n        var radius = e.accuracy \/ 2;\n\n        if (!markerPosicion) {\n            markerPosicion = L.marker(e.latlng).addTo(map).bindPopup(\"Tu posici\u00f3n actual\");\n            circuloPrecision = L.circle(e.latlng, radius, {\n                color: '#136aec',\n                fillColor: '#136aec',\n                fillOpacity: 0.15\n            }).addTo(map);\n        } else {\n            markerPosicion.setLatLng(e.latlng);\n            circuloPrecision.setLatLng(e.latlng).setRadius(radius);\n        }\n    });\n\n    \/\/ Evento: Error de GPS\n    map.on('locationerror', function(e) {\n        alert(\"No se pudo acceder al GPS: \" + e.message + \"\\n\\nRECUERDA: El GPS requiere conexi\u00f3n HTTPS segura.\");\n    });\n\n<\/script>\n\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Canarias Nautical Guide &#8211; Sistema Pro<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-181","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/simplyaboard.com\/index.php?rest_route=\/wp\/v2\/pages\/181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simplyaboard.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/simplyaboard.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/simplyaboard.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/simplyaboard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=181"}],"version-history":[{"count":1,"href":"https:\/\/simplyaboard.com\/index.php?rest_route=\/wp\/v2\/pages\/181\/revisions"}],"predecessor-version":[{"id":182,"href":"https:\/\/simplyaboard.com\/index.php?rest_route=\/wp\/v2\/pages\/181\/revisions\/182"}],"wp:attachment":[{"href":"https:\/\/simplyaboard.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}