{"id":1,"date":"2026-05-21T20:25:48","date_gmt":"2026-05-21T20:25:48","guid":{"rendered":"https:\/\/geo.edesma.org\/blog\/?p=1"},"modified":"2026-05-30T12:30:03","modified_gmt":"2026-05-30T12:30:03","slug":"hello-world","status":"publish","type":"post","link":"https:\/\/geo.edesma.org\/blog\/?p=1","title":{"rendered":"Un puente entre QGIS y la web, creado con IA y experiencia SIG"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hace ya varios a\u00f1os, mis primeras aplicaciones web interactivas de SIG las desarroll\u00e9 en ActionScript, cuando Flex a\u00fan compet\u00eda de t\u00fa a t\u00fa con otras tecnolog\u00edas para construir aplicaciones web ricas \u2014comparables a las de escritorio\u2014, incluyendo visores GIS. M\u00e1s tarde, migr\u00e9 a OpenLayers y el ecosistema HTML\/JS.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"849\" height=\"528\" src=\"https:\/\/geo.edesma.org\/blog\/wp-content\/uploads\/2026\/05\/QGISLayerViewer_1.png\" alt=\"\" class=\"wp-image-22\" style=\"aspect-ratio:1.607976071784646;width:341px;height:auto\" srcset=\"https:\/\/geo.edesma.org\/blog\/wp-content\/uploads\/2026\/05\/QGISLayerViewer_1.png 849w, https:\/\/geo.edesma.org\/blog\/wp-content\/uploads\/2026\/05\/QGISLayerViewer_1-300x187.png 300w, https:\/\/geo.edesma.org\/blog\/wp-content\/uploads\/2026\/05\/QGISLayerViewer_1-768x478.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Ahora, ya retirado, he decidido dedicar mi tiempo a iniciativas humanitarias y comunitarias, apoyando el desarrollo de datos abiertos y herramientas SIG sin \u00e1nimo de lucro.<\/p>\n\n\n\n<!--more Cotin\u00faa leyendo-->\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Claude como herramienta de desarrollo<\/strong> <\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Para abordar estos proyectos con eficiencia, recurr\u00ed a <strong>Claude<\/strong> (la familia de modelos de lenguaje de Anthropic) como asistente de desarrollo. Mi rol fue claro: <strong>arquitecto y director del proyecto<\/strong>. Yo defin\u00eda los requisitos, tomaba las decisiones de dise\u00f1o, aportaba el conocimiento especializado en QGIS y cartograf\u00eda, proporcionaba los archivos de prueba, identificaba errores y validaba cada funcionalidad contra el comportamiento real de QGIS. Claude, por su parte, se encargaba de escribir el c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La distinci\u00f3n es clave: <strong>Claude generaba la implementaci\u00f3n<\/strong>, pero sin mi direcci\u00f3n \u2014basada en a\u00f1os de experiencia en SIG y desarrollo web\u2014 no habr\u00eda sabido <em>qu\u00e9<\/em> construir, <em>c\u00f3mo<\/em> estructurarlo ni si el resultado era correcto. En la pr\u00e1ctica, el proceso era una <strong>conversaci\u00f3n t\u00e9cnica iterativa<\/strong>: yo planteaba los problemas, evaluaba las soluciones y guiaba los ajustes.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>QGIS Layer Viewer: un puente entre QGIS y la web<\/strong><\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">QGIS Layer Viewer es un <strong>visor de mapas web ligero y sin servidor<\/strong> que lee archivos de Definici\u00f3n de Capas de QGIS (<code>.qlr<\/code>) y datos GeoJSON <strong>directamente en el navegador<\/strong>, renderiz\u00e1ndolos en un mapa OpenLayers con un estilo que replica fielmente el proyecto original de QGIS.<\/p>\n\n\n\n<ul class=\"wp-block-list lista-indentada has-custom-css wp-custom-css-7cba20d5\">\n<li class=\"has-custom-css wp-custom-css-201294be\"><strong>Sin backend<\/strong>, sin procesamiento en servidor, sin dependencia de servicios en la nube. <\/li>\n\n\n\n<li>Los archivos se cargan localmente o desde una URL.<\/li>\n\n\n\n<li><strong>Todo funciona en el navegador<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPara qui\u00e9n es?<\/strong> Para profesionales de SIG que trabajan en QGIS y necesitan <strong>compartir mapas estilizados en la web sin reconstruir la simbolog\u00eda desde cero<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 problema resuelve?<\/strong> El vac\u00edo entre una capa QGIS estilizada y un mapa web publicable:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Exporta el <code>.qlr<\/code>, comb\u00ednalo con un GeoJSON, carga ambos en el visor y listo.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 <em>no<\/em> es?<\/strong> No es un editor SIG completo. No soporta capas r\u00e1ster, WMS ni expresiones complejas de QGIS. Es una herramienta <strong>solo de lectura<\/strong>, pensada para previsualizaci\u00f3n y compartici\u00f3n r\u00e1pida.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Para desarrolladores web<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El c\u00f3digo fuente de QGIS Layer Viewer no solo es funcional, sino que tambi\u00e9n ofrece soluciones concretas a problemas poco documentados, como:<\/p>\n\n\n\n<ul class=\"wp-block-list lista-indentada has-custom-css wp-custom-css-fb3a4873\">\n<li>Traducci\u00f3n de simbolog\u00eda QGIS a OpenLayers.<\/li>\n\n\n\n<li>Paginaci\u00f3n de servicios ArcGIS.<\/li>\n\n\n\n<li>Detecci\u00f3n de <em>features<\/em> en pol\u00edgonos con relleno transparente.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En mi pr\u00f3xima entrada, profundizar\u00e9 sobre esta aplicaci\u00f3n y sus detalles t\u00e9cnicos.<\/p>\n\n\n\n<div class=\"wp-block-jetpack-related-posts\">\n<h2 class=\"wp-block-heading has-medium-gray-color has-text-color has-link-color wp-elements-dd37eb683ed33995c564ab9feadacaca\">Posts Relacionados<\/h2>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hace ya varios a\u00f1os, mis primeras aplicaciones web interactivas de SIG las desarroll\u00e9 en ActionScript, cuando Flex a\u00fan compet\u00eda de t\u00fa a t\u00fa con otras tecnolog\u00edas para construir aplicaciones web ricas \u2014comparables a las de escritorio\u2014, incluyendo visores GIS. M\u00e1s tarde, migr\u00e9 a OpenLayers y el ecosistema HTML\/JS. Ahora, ya retirado, he decidido dedicar mi &hellip; <a href=\"https:\/\/geo.edesma.org\/blog\/?p=1\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Un puente entre QGIS y la web, creado con IA y experiencia SIG&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wikipediapreview_detectlinks":true,"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[11,4,6,5],"tags":[12,8,7],"class_list":["post-1","post","type-post","status-publish","format-standard","hentry","category-ai","category-aplicaciones","category-openlayers","category-qgis","tag-claude","tag-openlayers","tag-qgis"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1"}],"version-history":[{"count":11,"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions"}],"predecessor-version":[{"id":82,"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1\/revisions\/82"}],"wp:attachment":[{"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geo.edesma.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}