Web Map Service
La siguiente guía explica cómo crear un Web Map Service (WMS) con UMN Mapserve.
Contenido |
Introducción
Los web map service (WMS) son útiles para poder intercambiar mapas actualizados entre servidores de instituciones con sólo una llamada a un URL. Los WMS, en el caso de configurarse con UMN Mapserver son programas Cgi que interactúan con el cliente vía el protocolo HTTP.
En el caso del sistema Hsgeo de Hospitales Seguros del MINSAL se desea superponer a los establecimientos de salud, las diferentes amenazas de origen socio-natural como inundaciones, deslizamientos, erupción volcánica, tsunamis, etc. En este caso, la información geográfica relacionada a estas amenazas es generada y actualizada en el Ministerio de Medio Ambiente (MARN), por lo que requiere únicamente de los WMS de cada amenaza. Cada vez que el MARN actualice dicha información, ésta aparecerá ya actualizada en el sistema Hsgeo. Además, otras instituciones requieren de datos geográficos de salud, para lo cual es necesario crear los WMS correspondientes.
Pasos para configurar un WMS con UMN Mapserver
A continuación se explican los pasos para crear un WMS con UMN Mapserver, tomando como referencia la guía del sitio oficial de mapserver: http://mapserver.org/ogc/wms_server.html
Instalación de UMN Mapserver
Instalar mapserver como se indica en UMN Mapserver y verificar que la versión instalada tenga habilitado el soporte para WMS server con la siguiente instrucción:
cd /usr/lib/cgi-bin ./mapserv -v
El resultado debe de indicar: SUPPORTS=WMS_SERVER
Configuración del archivo tipo map
Configurar el archivo .map de la capa a servir con la especificación de algunos parámetros de metadatos adicionales a los que se tienen normalmente al trabajar con mapserver.
En la estructura del archivo .map, en el nivel de la etiqueta MAP, se tienen que especificar valores para las etiquetas: NAME, PROJECTION y METADATA. En METADATA se deberá especificar valores para : "wms_title", "wms_onlineresource", "wms_srs" y "wms_enable_request". Es necesario especificar la RUTA COMPLETA del archivo .map en la etiqueta wms_onlineresource, de lo contrario el mapa no será accesible. En el siguiente nivel de la etiqueta LAYER, es necesario proporcionar valores para: NAME, PROJECTION, METADATA y STATUS. En METADATA se deberá especificar valores para: "wms_title", "wms_srs" y "wms_enable_request". Además, si un cliente WMS desea conocer la fuente y fecha de los datos o hacer alguna, es recomendable incluir información adicional.
A continuación se muestra un ejemplo de archivo .map para configurar el WMS de unidades comunitarias de salud familiar (UCSF) del MINSAL.
MAP NAME "WMS Establecimientos MINSAL" SIZE 800 650 STATUS ON EXTENT -90.191281 12.706798 -87.623150 14.902626 SIZE 500 500 INCLUDE "geomoose_globals.map" CONFIG "MS_ENCRYPTION_KEY" "/home/administrador/schluss.txt" WEB METADATA "wms_title" "Establecimientos MINSAL" "wms_abstract" "Establecimientos del Ministerio de Salud de El Salvador" "wms_keywordlist" "establecimientos, salud publica, el salvador, minsal, ministerio de salud" "wms_onlineresource" "http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&" "wms_srs" "EPSG:4326" 'wms_feature_info_mime_type' 'text/html' 'queryable' 'true' "wms_enable_request" "*" "wms_contactelectronicmailaddress" "contacto@salud.gob.sv" "wms_contactperson" "Nombre contacto, contacto@salud.gob.sv" "wms_contactorganization" "Ministerio de Salud El Salvador (MINSAL)" "wms_contactposition" "Analista GIS de la Direccion de Tecnologias de Informacion y Comunicaciones (DTIC)" "wms_contactvoicetelephone" "(503) 2205-7169" END END PROJECTION "init=epsg:4326" END LEGEND STATUS ON LABEL TYPE TRUETYPE FONT vera_sans SIZE 8 COLOR 0 0 0 END END LAYER NAME "minsal" TYPE POINT CONNECTIONTYPE postgis CONNECTION "dbname='bd' user=usuario password=clave sslmode=disable" DATA 'the_geom FROM (query) as subquery using unique gid using SRID=4326' HEADER "templates/header.html" TEMPLATE "templates/content_hospitales.html" FOOTER "templates/footer.html" METADATA "wms_title" "Establecimientos MINSAL" "wms_abstract" "Establecimientos del Ministerio de Salud de El Salvador" "wms_keywordlist" "establecimientos, salud publica, el salvador, minsal, ministerio de salud" "wms_srs" "EPSG:4326" "wms_enable_request" "*" 'wms_include_items' 'all' 'ows_mygeom_type' 'point' "wms_feature_info_mime_type" "text/html" 'queryable' 'true' "wms_enable_request" "GetMap GetFeatureInfo" END STATUS DEFAULT PROJECTION "init=epsg:4326" END EXTENT -90.191281 12.706798 -87.623150 14.902626 LABELITEM "name" LABELMAXSCALE 100000 LABELCACHE ON UNITS dd SIZEUNITS PIXELS CLASSITEM "tipo" CLASS NAME 'Secretaría de Estado' EXPRESSION ([tipo]=29) STYLE SYMBOL "oficina" SIZE 16 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END CLASS NAME 'Casas de salud' EXPRESSION ([tipo]=4) STYLE SYMBOL "csalud" SIZE 12 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Centros rurales de nutricion' EXPRESSION ([tipo]=5) STYLE SYMBOL "nutricion" SIZE 12 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END CLASS NAME 'Oficina Sanitaria Internacional' EXPRESSION ([tipo]=7) STYLE SYMBOL "osi" SIZE 12 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'UCSF básica' EXPRESSION ([tipo]=8) STYLE SYMBOL "ucsfb" SIZE 10 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'UCSF Intermedia' EXPRESSION ([tipo]=27) STYLE SYMBOL "ucsfi" SIZE 14 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'UCSF especializada' EXPRESSION ([tipo]=9) STYLE SYMBOL "ucsfe" SIZE 16 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Hogares de espera materna' EXPRESSION ([tipo]=10) STYLE SYMBOL "hem" SIZE 12 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Dirección regional' EXPRESSION ([tipo]=12) STYLE SYMBOL "region" SIZE 12 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'SIBASI' EXPRESSION ([tipo]=13) STYLE SYMBOL "sibasi" SIZE 12 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Hospitales básicos' EXPRESSION ([tipo]=1) STYLE SYMBOL "hospitalb" SIZE 16 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Hospitales departamentales' EXPRESSION ([tipo]=30) STYLE SYMBOL "hospitald" SIZE 16 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Hospitales regionales' EXPRESSION ([tipo]=31) STYLE SYMBOL "hospitalr" SIZE 16 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Hospitales Especializados' EXPRESSION ([tipo]=14) STYLE SYMBOL "hospitale" SIZE 16 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class CLASS NAME 'Sistema de emergencias médicas' EXPRESSION ([tipo]=33) STYLE SYMBOL "sem" SIZE 16 #COLOR 255 0 0 END LABEL COLOR 0 0 0 FONT "vera_sans" TYPE TRUETYPE POSITION CC PARTIALS TRUE SIZE 7 BUFFER 0 OUTLINECOLOR 255 255 255 END END ## end Class END ## end Layer END ## end Map
Plantillas
Si se desea mostrar al cliente WMS información de los atributos de la capa es necesario proporcionar dentro de la etiqueta LAYER de la capa, valores para HEADER, TEMPLATE, FOOTER, "wms_feature_info_mime_type" y 'queryable' con valor de true. Las etiquetas HEADER, TEMPLATE y FOOTER indican plantillas (template) en formato de página html que permiten conjuntamente colocar los resultados de la consulta de los atributos de la capa.
Además, se muestran a continuación las plantillas HTML que muestran el resultado de la consulta de los atributos de la capa:
header.html
El header.html es el encabezado de la plantilla que muestra los atributos de la capa, en este archivo se especifica el formato de los datos.
<!-- MapServer Template --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/transitional.dtd"> <html> <head> <!-- enforce the client to display result html as UTF-8 encoding --> <meta http-equiv="content-type" content="text/html; charset=UTF-8"></meta> <!-- <link rel="stylesheet" type="text/css" href="../mfbase/ext/resources/css/ext-all.css" /> --> <style type="text/css" > table.c3 { border-collapse:collapse; } .c2 { valign: top; text-align: center; border:1px solid #3333FF; background:#d0def0 url(bg.gif) repeat-x top left; font-family: arial; font-size: 9pt; color: #333333; border-collapse:collapse; } .c4 { valign: top; background:#B0C4DE; text-align: center; color: #333333; border-collapse:collapse; border:1px solid #3333FF; font-size: 10pt; font-weight: bold; } caption { border:1px solid #3333FF; border-collapse:collapse; font-family: arial; font-weight: bold; font-size: 10pt; text-align: left; color: #333333; } </style> <title>GetFeatureInfo Response</title> </head> <body> <table class="c3">
content.html
Esta plantilla es la que muestra el contenido de los atributos por capa. En esta página se especifican los nombres de los atributos y a cada uno se le asigna con la etiqueta "name" el nombre del atributo de la tabla en la base de datos.
<!-- MapServer Template --> <caption>Layer: UCSF</caption> <tbody> <tr><td CLASS="c4">Nombre</td><td class="c2" >[item name="name" format=$value escape=none]</td></tr> <tr><td CLASS="c4">Detalle</td><td class="c2" >[item name="descr" format=$value escape=none]</td></tr> <tr><td CLASS="c4">Municipio</td><td class="c2" >[item name="muni" format=$value escape=none]</td></tr> <tr><td CLASS="c4">Departamento</td><td class="c2" >[item name="dpto" format=$value escape=none]</td></tr>
footer.html
Esta plantilla contiene las etiquetas html para cerrar la combinación de las plantillas header.html, content.html y footer.html.
<!-- MapServer Template --> </tbody> </table> <br/> </body> </html>
Prueba del WMS
Finalmente es necesario probar el WMS creado.
Pueba con la petición GetCapabilities
Se puede probar el WMS escribiendo en el navegador la siguiente URL que incluye la petición GetCapabilities:
A continuación, el navegador le solicitará descargar y guardar un archivo tipo xml con los metadatos del xml. El contenido del archivo sería algo como:
<!-- end of DOCTYPE declaration --> <WMT_MS_Capabilities version="1.1.1"> <!-- MapServer version 6.0.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=CAIRO SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE --> <Service> <Name>OGC:WMS</Name> <Title>Establecimientos MINSAL</Title> <Abstract> Establecimientos del Ministerio de Salud de El Salvador </Abstract> <KeywordList> <Keyword>establecimientos</Keyword> <Keyword>salud publica</Keyword> <Keyword>el salvador</Keyword> <Keyword>minsal</Keyword> <Keyword>ministerio de salud</Keyword> </KeywordList> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> <ContactInformation> <ContactPersonPrimary> <ContactPerson>Metzi Aguilar, maguimun@salud.gob.sv</ContactPerson> <ContactOrganization>Ministerio de Salud El Salvador (MINSAL)</ContactOrganization> </ContactPersonPrimary> <ContactPosition> Analista GIS de la Direccion de Tecnologias de Informacion y Comunicaciones (DTIC) </ContactPosition> <ContactVoiceTelephone>(503) 2205-7169</ContactVoiceTelephone> <ContactElectronicMailAddress>maguimun@salud.gob.sv</ContactElectronicMailAddress> </ContactInformation> </Service> <Capability> <Request> <GetCapabilities> <Format>application/vnd.ogc.wms_xml</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Get> <Post> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Post> </HTTP> </DCPType> </GetCapabilities> <GetMap> <Format>image/png</Format> <Format>image/jpeg</Format> <Format>image/gif</Format> <Format>image/png; mode=8bit</Format> <Format>application/x-pdf</Format> <Format>image/svg+xml</Format> <Format>image/tiff</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Get> <Post> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Post> </HTTP> </DCPType> </GetMap> <GetFeatureInfo> <Format>text/html</Format> <Format>application/vnd.ogc.gml</Format> <Format>text/plain</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Get> <Post> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Post> </HTTP> </DCPType> </GetFeatureInfo> <DescribeLayer> <Format>text/xml</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Get> <Post> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Post> </HTTP> </DCPType> </DescribeLayer> <GetLegendGraphic> <Format>image/png</Format> <Format>image/jpeg</Format> <Format>image/gif</Format> <Format>image/png; mode=8bit</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Get> <Post> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Post> </HTTP> </DCPType> </GetLegendGraphic> <GetStyles> <Format>text/xml</Format> <DCPType> <HTTP> <Get> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Get> <Post> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&"/> </Post> </HTTP> </DCPType> </GetStyles> </Request> <Exception> <Format>application/vnd.ogc.se_xml</Format> <Format>application/vnd.ogc.se_inimage</Format> <Format>application/vnd.ogc.se_blank</Format> </Exception> <VendorSpecificCapabilities/> <UserDefinedSymbolization SupportSLD="1" UserLayer="0" UserStyle="1" RemoteWFS="0"/> <Layer> <!-- WARNING: The layer name 'WMS Establecimientos MINSAL' might contain spaces or invalid characters or may start with a number. This could lead to potential problems. --> <Name>WMS Establecimientos MINSAL</Name> <Title>Establecimientos MINSAL</Title> <Abstract> Establecimientos del Ministerio de Salud de El Salvador </Abstract> <KeywordList> <Keyword>establecimientos</Keyword> <Keyword>salud publica</Keyword> <Keyword>el salvador</Keyword> <Keyword>minsal</Keyword> <Keyword>ministerio de salud</Keyword> </KeywordList> <SRS>EPSG:4326</SRS> <LatLonBoundingBox minx="-90.1913" miny="12.7068" maxx="-87.6231" maxy="14.9026"/> <BoundingBox SRS="EPSG:4326" minx="-90.1913" miny="12.7068" maxx="-87.6231" maxy="14.9026"/> <!-- WARNING: This layer has its status set to DEFAULT and will always be displayed when doing a GetMap request even if it is not requested by the client. This is not in line with the expected behavior of a WMS server. Using status ON or OFF is recommended. --> <Layer queryable="1" opaque="0" cascaded="0"> <Name>minsal</Name> <Title>Establecimientos MINSAL</Title> <Abstract> Establecimientos del Ministerio de Salud de El Salvador </Abstract> <KeywordList> <Keyword>establecimientos</Keyword> <Keyword>salud publica</Keyword> <Keyword>el salvador</Keyword> <Keyword>minsal</Keyword> <Keyword>ministerio de salud</Keyword> </KeywordList> <SRS>EPSG:4326</SRS> <LatLonBoundingBox minx="-90.1913" miny="12.7068" maxx="-87.6231" maxy="14.9026"/> <BoundingBox SRS="EPSG:4326" minx="-90.1913" miny="12.7068" maxx="-87.6231" maxy="14.9026"/> <Style> <Name>default</Name> <Title>default</Title> <LegendURL width="225" height="238"> <Format>image/png</Format> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&version=1.1.1&service=WMS&request=GetLegendGraphic&layer=minsal&format=image/png&STYLE=default"/> </LegendURL> </Style> </Layer> </Layer> </Capability> </WMT_MS_Capabilities>
Pueba con la petición GetMap
Se puede probar el WMS escribiendo por ejemplo en el navegador la siguiente URL que incluye la petición GetMap:
https://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=minsal&SRS=EPSG:4326&BBOX=-90.1913,12.7068,-87.6231,14.9026&WIDTH=700&HEIGHT=650&FORMAT=image/png
El resultado de la petición en el navegador es como lo indica la siguiente imagen:
Prueba con un cliente WMS
Para probar el WMS creado desde un cliente como Quantum GIS, se puede hacer la prueba seleccionando la opción: "Añadir capa WMS". A continuación se muestran los pasos para agregar el WMS en el Quantum GIS:
3.1-Seleccionar la opción "Nuevo".
3.2-Introducir un nombre para la capa y el URL de la capa especificado para "wms_onlineresource" en el archivo .map:
3.3-Conectarse al nuevo WMS configurado:
3.4-El resultado de agregar la capa WMS es como se muestra a continuación:
3.4-Si seleccionamos las propiedades de la capa, se obtiene una ventana con los datos proporcionados en el archivo .map:
3.5-Si identificamos un objeto espacial, en este caso una unidad comunitaria de salud familiar (UCSF), se obtiene una ventana con los datos de dicho establecimiento. El formato de visualización de los datos está proporcionado con las plantillas especificadas en el archivo .map: header.html, content.html y footer.html
WMS MINSAL
A continuación se indica el WMS de establecimientos del MINSAL:
http://geo.salud.gob.sv/cgi-bin/mapserv?MAP=/var/www/geo/geo/maps/wms/minsal.map