Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
sistemas:gis:mapserver [2010/07/11 13:32] alfred |
sistemas:gis:mapserver [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 26: | Línea 26: | ||
| * **Páginas HTML**. | * **Páginas HTML**. | ||
| MapServer es un programa CGI y como tal no tiene estado, cada petición que se le hace es independiente y no es influida por las pasadas. \\ | MapServer es un programa CGI y como tal no tiene estado, cada petición que se le hace es independiente y no es influida por las pasadas. \\ | ||
| + | {{ sistemas:gis:ms-arquitectura.png?500 |}} | ||
| - | {{ sistema:gis:architecture.png?500 |}} | ||
| Línea 37: | Línea 37: | ||
| * Siempre es recomendable utilizar rutas relativas y no absolutas, aunque son admitidas las dos. | * Siempre es recomendable utilizar rutas relativas y no absolutas, aunque son admitidas las dos. | ||
| * Las rutas tendrán que ser indicadas entre comillas (simples o dobles, da igual). | * Las rutas tendrán que ser indicadas entre comillas (simples o dobles, da igual). | ||
| - | ==== Elementos ==== | + | |
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Objetos ==== | ||
| + | Estos son los objetos más utilizados internamente en un MapFile y sus propiedades: | ||
| + | === MAP === | ||
| + | * **EXTENT**, es la extensión del mapa resultado. | ||
| + | * **SIZE**, es el tamaño del mapa. | ||
| + | * **IMAGECOLOR**, el color de fondo del mapa. | ||
| + | <code> | ||
| + | MAP | ||
| + | NAME "sample" | ||
| + | EXTENT -180 -90 180 90 # Geographic | ||
| + | SIZE 800 400 | ||
| + | IMAGECOLOR 128 128 255 | ||
| + | END | ||
| + | </code> | ||
| + | === LAYER === | ||
| + | El parámetro **DATA** indica a qué tipo se refiere el parémetro **SHAPEPATH** del objeto MAP, si no se definiese se tomaría como un shapefile (.shp). | ||
| + | === RASTER === | ||
| + | <code> | ||
| + | LAYER | ||
| + | NAME "bathymetry" | ||
| + | TYPE RASTER | ||
| + | STATUS DEFAULT | ||
| + | DATA "bath_mapserver.tif" | ||
| + | END | ||
| + | </code> | ||
| + | === Layers vectoriales === | ||
| + | Estas pueden ser del tipo point, line o polygon (parámetro **TYPE**), según lo que se quiera mostrar. | ||
| + | <code> | ||
| + | LAYER | ||
| + | NAME "world_poly" | ||
| + | DATA 'shapefile/countries_area.shp' | ||
| + | STATUS ON | ||
| + | TYPE POLYGON | ||
| + | CLASS | ||
| + | NAME 'The World' | ||
| + | STYLE | ||
| + | OUTLINECOLOR 0 0 0 | ||
| + | END | ||
| + | END | ||
| + | END # layer | ||
| + | </code> | ||
| + | |||
| + | === Objetos CLASS y STYLE === | ||
| + | Son los utilizados para dar formato a los objetos LAYER. | ||
| + | <code> | ||
| + | CLASS | ||
| + | NAME "Primary Roads" | ||
| + | STYLE | ||
| + | SYMBOL "circle" | ||
| + | COLOR 178 114 1 | ||
| + | SIZE 15 | ||
| + | END #style1 | ||
| + | STYLE | ||
| + | SYMBOL "circle" | ||
| + | COLOR 254 161 0 | ||
| + | SIZE 7 | ||
| + | END #style2 | ||
| + | END | ||
| + | </code> | ||
| + | |||
| + | === SYMBOLS === | ||
| + | Se pueden definir directamente en el mapfile o en un fichero separado (entonces deberíamos utilizar el parámetro **SYMBOLSET** en el MAP). Por ejemplo: | ||
| + | <code> | ||
| + | MAP | ||
| + | NAME "sample" | ||
| + | EXTENT -180 -90 180 90 # Geographic | ||
| + | SIZE 800 400 | ||
| + | IMAGECOLOR 128 128 255 | ||
| + | SYMBOLSET "../etc/symbols.txt" | ||
| + | END # map | ||
| + | LAYER | ||
| + | ... | ||
| + | CLASS | ||
| + | NAME "Ski Area" | ||
| + | STYLE | ||
| + | SYMBOL "ski" | ||
| + | END | ||
| + | END | ||
| + | END # layer | ||
| + | </code> | ||
| + | Y ''symbols.txt'' contendría: | ||
| + | <code> | ||
| + | SYMBOL | ||
| + | NAME "ski" | ||
| + | TYPE PIXMAP | ||
| + | IMAGE "ski.gif" | ||
| + | END | ||
| + | </code> | ||
| + | === LABEL === | ||
| + | El objeto LAYER tiene el parámetro **LABELITEM** que puede ser utilizado en una columna específica en unos datos para referirse a un fichero **FONTSET** (el cual contiene una referencia a los nombres de fuentes posibles). | ||
| + | <code> | ||
| + | LABEL | ||
| + | FONT "sans-bold" | ||
| + | TYPE truetype | ||
| + | SIZE 10 | ||
| + | POSITION LC | ||
| + | PARTIALS FALSE | ||
| + | COLOR 100 100 100 | ||
| + | OUTLINECOLOR 242 236 230 | ||
| + | END # label | ||
| + | </code> | ||
| + | |||
| + | === INCLUDE === | ||
| + | Cualquier parte del mapfile puede ser almacenado en un fichero por separado y añadido mediante el parámetro **INCLUDE**, el nombre del fichero puede tener cualquier extensión y su ruta será siempre relativa al .map. De esa forma tanto las layers como los estilos pueden ser incluidos en multiples aplicaciones. \\ | ||
| + | Por ejemplo, podríamos tener un fichero ''shadedrelief.lay'': | ||
| + | <code> | ||
| + | LAYER | ||
| + | NAME 'shadedrelief' | ||
| + | STATUS ON | ||
| + | TYPE RASTER | ||
| + | DATA 'GLOBALeb3colshade.jpg' | ||
| + | END | ||
| + | </code> | ||
| + | Y el mapfile: | ||
| + | <code> | ||
| + | MAP | ||
| + | ... | ||
| + | INCLUDE "shadedrelief.lay" | ||
| + | ... | ||
| + | END | ||
| + | </code> | ||
| + | O incluir los objetos layers a parte: | ||
| + | <code> | ||
| + | NAME "base" | ||
| + | # | ||
| + | # include reference objects | ||
| + | # | ||
| + | INCLUDE "../templates/template.ref" | ||
| + | # | ||
| + | # Start of layer definitions | ||
| + | # | ||
| + | INCLUDE "../layers/usa/usa_outline.lay" | ||
| + | INCLUDE "../layers/canada/base/1m/provinces.lay" | ||
| + | INCLUDE "../layers/canada/base/1m/roads_atlas_of_canada_1m.lay" | ||
| + | INCLUDE "../layers/canada/base/1m/roads_atlas_of_canada_1m_shields.lay" | ||
| + | INCLUDE "../layers/canada/base/1m/populated_places.lay" | ||
| + | END # Map File | ||
| + | </code> | ||
| + | |||
| + | ===== Como... ===== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Crear un servicio WMS ==== | ||
| + | * [[sistemas:gis#servicios_wms|Servicios WMS]] | ||
| + | * [[http://mapserver.org/ogc/wms_server.html|Manual de MapServer sobre cómo hacerlo]] | ||
| + | Para que MapServer permita ser configurado como WMS ha de haber sido compilado con las librerías ''libcurl'' y ''Proj.4'', para comprobar si realmente admite esta propiedad ejecutaremos ''mapsrv -v'' y tendrá que salir ''SUPPORTS=WMS_SERVER''. \\ | ||
| + | |||
| + | :?: También será necesario definir un objeto ''METADATA'' en el MAP y en las LAYER. | ||
| + | |||
| + | ===== MapScript ===== | ||
| + | |||
| + | |||