Inicio Rápido de MapServer¶
MapServer es una aplicación basada en servidor de Código Abierto que le permite publicar ned application that allows you to publish imágenes de mapas geográficos y datos vectoriales a través de Internet usando OGC Standards como Web Map Service (WMS), Web Feature Service (WFS) y Web Coverage Service (WCS).
Contenidos
Configure MapServer usando el archivo de configuración del archivo Map¶
Nota
¿Qué aprenderé? En esta sección, aprenderá sin igual lo que es un archivo Map y cómo configurarlo para permitir que MapServer sirva un archivo Shape como imágenes mediante solicitudes WMS.
¿Qué es un archivo Map?¶
Un archivo Map es el archivo de configuración que MapServer usa para representar datos geoespaciales como imágenes o datos vectoriales. Su objetivo principal es definir las capas que puede dibujar, cómo leer los datos necesarios y cómo representarlos (por ejemplo, color, símbolo, etiqueta, etc.).
Creación de mi primer archivo Map¶
Abra cualquier editor de texto (por ejemplo
).Crear el archivo «mapserver_quickstart.map» en tu directorio raiz:
/home/user/mapserver_quickstart.map
Poner el siguiente contenido en él:
MAP NAME "MAPSERVER_QUICKSTART" EXTENT -137 29 -53 88 UNITS DD SHAPEPATH "/home/user/data/natural_earth2/" SIZE 800 600 IMAGETYPE PNG24 PROJECTION "init=epsg:4326" END WEB METADATA ows_title "MapServer Quickstart" ows_enable_request "*" ows_srs "EPSG:4326 EPSG:25832 EPSG:25833" END END LAYER NAME "Countries" STATUS ON TYPE POLYGON DATA "ne_10m_admin_0_countries" CLASS STYLE COLOR 246 241 223 OUTLINECOLOR 0 0 0 END END END END
Nota
El ejemplo utiliza el conjunto de datos de Natural Earth, que ya está instalado en OSGeoLive en
~/data/natural_earth2
(atajo para/usr/local/share/data/natural_earth2
).
Cada objeto en un archivo Map comienza con su nombre (por ejemplo MAP) y termina con un END. Un archivi Map siempre comienza con el objeto MAP y debe contener una lista de objetos LAYER que el archivo Map puede leer y dibujar. En nuestro archivo Map, actualmente solo tenemos una capa definida.
Echemos un vistazo a algunos de los objetos (y propiedades) definidos en nuestro archivo Map:
EXTENSIÓN: establece el cuadro delimitador geoespacial predeterminado para esta configuración.
CAPA: define las propiedades de acceso y visualización de un conjunto de datos espacial. Vamos a añadir otra capa más tarde.
SHAPEPATH: establece una ruta de base de datos basados en archivos (por ejemplo imágenes de shapefiles o tiff).
Si miramos más de cerca la CAPA en nuestro archivo Map, veremos que contiene un montón de propiedades y objetos también. Entre ellos se encuentran:
STATUS: define si la capa puede ser dibujada (ON), no puede ser dibujada (OFF) o siempre se dibuja (PREDETERMINADAMENTE).
TIPO: el tipo de geometría que MapServer debe utilizar al representar los datos como una imagen. En nuestro archivo Map, los datos se dibujarán como polígonos.
DATOS: el nombre del archivo de datos espaciales de esta capa utiliza, en este caso un shapefile.
CLASE: determina cómo dibujar una capa (estilo). Cubriremos este objeto con más detalle más adelante.
Nota
Una lista completa de los objetos disponibles y las propiedades que puede tener un archivo Map, puede encontrarse en la página de documentación de MapServer.
Renderizar una imagen del mapa con MapServer usando una Solicitud de GetMap de WMS¶
Nota
¿Qué aprenderé? Aprenderá a renderizar una imagen con capas de un archivo Map con MapServer utilizando una solicitud de OGC WMS.
Abra un navegador web e introduzca la siguiente URL:
http://localhost/cgi-bin/mapserv?map=/home/user/mapserver_quickstart.map&SERVICE=WMS&REQUEST=Getmap&VERSION=1.1.1&LAYERS=Countries&SRS=EPSG:4326&BBOX=-137,29,-53,88&FORMAT=PNG&WIDTH=800&HEIGHT=600
¿Qué significa lo anterior? Si lo ponemos en palabras simples, es una solicitud Web Map Service (WMS) de GetMap que indica a MapServer que «utilice el siguiente archivo Map para representar las capas especificadas como una imagen png basada en algunos parámetros proporcionados por el usuario, como el tamaño de la imagen, la extensión geográfica, la proyección, etc.». Todas las capas especificadas en la propiedad «&A LAYERS…» que tengan STATUS ON en el archivo Map se representarán además de todas las capas con STATUS DEFAULT. El resultado es el siguiente:
Nota
Todos los parámetros de la solicitud son específicamente WMS-, excepto «?map=/home/user/mapserver_quickstart.map», que es específico de MapServer.
Renderice una imagen del mapa con MapServer usando la línea de comando¶
Aunque MapServer está orientado a aplicaciones web, también puede producir imágenes en la línea de comandos. Esto puede ser útil si está buscando mapeo repetitivo o durante la depuración.
Abra una terminal(
) y tecleé:shp2img -m mapserver_quickstart.map -o mymap.png
Si este comando se ejecuta con éxito, puede ver su mapa renderizado en file:///home/user/mymap.png.
Agregue una nueva capa al archivo Map para servir un archivo Shape local¶
Nota
¿Qué aprenderé? Aprenderás a agregar una nueva definición de objeto de capa a tu archivo Map.
Ahora agregaremos una nueva capa a nuestro archivo Map. Antes de la última instrucción END en el archivo Map, agregue la siguiente configuración de capa:
LAYER
NAME "Lakes"
STATUS ON
TYPE POLYGON
DATA "ne_10m_lakes"
CLASS
STYLE
COLOR 153 179 204
END
END
END
Ahora tenemos 2 definiciones de capa en nuestro archivo Map. Tenga en cuenta que el nuevo que acabamos de agregar tiene la propiedad «STATUS» establecida en «ON». Eso significa que a menos que lo solicitemos específicamente, no se representará.
Tomemos nuestra anterior solicitud WMS GetMap agreguemos la nueva capa de «Lagos» a la imagen renderizada. Simplemente tenemos que añadir el nuevo nombre de la capa a la lista de propiedades de «CAPAS»:
http://localhost/cgi-bin/mapserv?map=/home/user/mapserver_quickstart.map&SERVICE=WMS&REQUEST=Getmap&VERSION=1.1.1&LAYERS=Countries,Lakes&SRS=EPSG:4326&BBOX=-137,29,-53,88&FORMAT=PNG&WIDTH=800&HEIGHT=600
La imagen de MapServer se ve como el mapa anterior, pero con la adición de los lagos de nuestra nueva capa:
Estilo de una capa mediante configuraciones de archivo Map¶
Nota
¿Qué aprenderé? Verá un ejemplo de elementos de estilo dentro de una capa según algunas de sus propiedades de datos.
En un archivo Map, un objeto de CAPA puede contener un número infinito de CLASES de objetos. Se utilizan para estilizar los elementos contenidos en el archivo de datos espaciales (DATA) del estilo. Por ejemplo, si miramos más de cerca nuestro archivo de datos «ne_10m_lakes» usando una herramienta como ogrinfo, veremos las definiciones de geometría y atributos que contiene. Estos valores de atributo se pueden utilizar como una forma de dibujar los elementos dentro de un conjunto de datos diferente, usando varias CLASES de objetos.
En nuestro conjunto de datos «ne_10m_lakes», tenemos un atributo de ScaleRank , que parece estar relacionado al tamaño de los lagos. Podemos utilizar esto como una forma de representar los lagos de manera diferente. En el objeto LAYER, vamos a añadir otra CLASE de objeto justo antes del el actual:
LAYER
NAME "Lakes"
STATUS ON
TYPE POLYGON
DATA "ne_10m_lakes"
CLASSITEM "ScaleRank"
CLASS
EXPRESSION /0|1/
STYLE
COLOR 153 179 204
OUTLINECOLOR 0 0 0
END
END
CLASS
STYLE
COLOR 153 179 204
END
END
END
¿Qué hace nuestra nueva CLASE de objeto? Básicamente, le dice MapServer que dibuje los elementos con la propiedad «ScaleRank» igual a «0» o «1» con un contorno negro. Las CLASES de objetos siempre se leen desde la parte superior hasta la parte inferior de cada función a ser dibujado. Cuando una característica coincide con la «EXPRESIÓN» especificada en una clase, esa clase va a representar la función. Si la función no coincide con una clase se comprueba la siguiente clase. Si una función no coincide con cualquier clase de entonces no se renderizará, pero si la última clase en una capa no contiene ninguna «EXPRESIÓN», entonces esa clase actuará preedeterminadamente. La propiedad de capa «CLASSITEM» indica a MapServer que atributo a utilizar al evaluar alguna «EXPRESIÓN» definida en las CLASES de objetos.
El resultado de esta nueva adición debe hacer que los grandes lagos de nuestra imagen de mapa se rendericen con un contorno negro:
Nota
Aprenda más sobre EXPRESSIONS en MapServer.
Publique los datos como OGC WMS (Servicio Web de Mapas)¶
MapServer admite diferentes estándares OGC como OGC WMS, WFS o WCS. Con OGC WMS puede publicar sus datos como un servicio de mapas e integrar el servicio en un SIG de escritorio como QGIS o en un cliente web como OpenLayers o Mapbender.
Uso de QGIS Desktop para cargar su OGC WMS¶
Iniciar QGIS via
Ir a
.Haga click en el botón Nuevo y agregue un nombre y su URL de Servicio
Guardar los cambios:
A continuación, puede conectarse a su servicio y agregar una o más capas del servicio a su proyecto QGIS. Si elige la capa con el ID 0, puede cargar todo el servicio con todas las capas a la vez.
¿Qué sigue?¶
Este es un ejemplo simple, pero usted puede hacer mucho, mucho más. La página web del proyecto MapServer contiene muchos recursos para ayudarle a comenzar. Aquí hay algunos recursos para comprobar hacia fuera el siguiente:
Leer la Introduction to MapServer.
Echa un vistazo al Tutorial de MapServer que contiene más ejemplos de archivos Map.
Revise Soporte y Configuración de OGC para aprender más sobre los estándares de OGC en MapServer (WMS, WFS, SLD, WFS Filter Encoding, WCS, SOS, etc.).
¿Listo para usar MapServer? Entonces únase a la comunidad en las Listas de Correo para intercambiar ideas, discutir sobre perfeccionamiento del potencial del software y resolver dudas.