<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Corral20</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Corral20"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-Corral20"/>
	<updated>2026-04-14T22:39:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Openlayers:_visualizaci%C3%B3n_de_capas_WFS&amp;diff=38977</id>
		<title>Openlayers: visualización de capas WFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Openlayers:_visualizaci%C3%B3n_de_capas_WFS&amp;diff=38977"/>
		<updated>2009-06-02T23:57:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: /* Definir un filtro personalizados */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Openlayers: visualización de capas WFS=&lt;br /&gt;
===Comenzando con un WMS===&lt;br /&gt;
Si hemos seguido las indicaciones de [[Openlayers: configuración mínima con biblioteca en remoto]], tendremos una página web que visualiza el servicio WMS del juego de datos ''Itasca'':&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol.html&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers itasca base map.jpg|thumb|none|400x400px|El WMS visualizado por Openlayers en la página web]]&lt;br /&gt;
&lt;br /&gt;
==Abrir una capa WFS con OpenLayers==&lt;br /&gt;
Utilizando el mismo código del ejemplo WMS vamos a añadir una capa WFS.&lt;br /&gt;
Exactamente vamos ad añadir una capa que hemos creado en la lección [[Crear servicios WMS y WFS con MS4W y gvSIG utilizando nuestro propio juego de datos]].&lt;br /&gt;
&lt;br /&gt;
Abrimos un nuevo fichero:&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\ol-itasca-wfs.html&lt;br /&gt;
&lt;br /&gt;
el código que vamos a utilizar es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 312px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.901),&lt;br /&gt;
 					maxResolution: 'auto',&lt;br /&gt;
					controls: [&lt;br /&gt;
						new OpenLayers.Control.PanZoomBar(),&lt;br /&gt;
						new OpenLayers. Control. Navigation(),&lt;br /&gt;
						new OpenLayers.Control.LayerSwitcher({'ascending':false})&lt;br /&gt;
					]&lt;br /&gt;
					} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;Itasca WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
			&lt;br /&gt;
            layer_wfs = new OpenLayers.Layer.WFS( &amp;quot;Itasca WFS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;quot;,&lt;br /&gt;
                    { typename: 'lakespy2.shp', maxfeatures: 200 } );&lt;br /&gt;
            &lt;br /&gt;
            map.addLayers([layer,layer_wfs]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS y WFS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          Ejemplo de utilizo de datos WMS y WFS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         mas texto aquì&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el link a nuestra pagina debería ser:&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol-itasca-wfs.html&lt;br /&gt;
[[Image:Openlayers-itasca-wfs-maxfeatures.jpg|thumb|none|400x400px|Capa WFS con maxFeatures = 100]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lo que vemos en la página que acabamos de crear son dos capas, una WMS que ya conocemos y una capa WFS que está renderizada por el OpenLayers gracias a las bibliotecas de dibujo vectorial que los browser modernos nos ofrecen.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos en los pedidos que el browser hace podremos comprobar que al UMN Mapserver llega:&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;amp;typename=lakespy2.shp&amp;amp;maxfeatures=200&amp;amp;SERVICE=WFS&amp;amp;VERSION=1.0.0&amp;amp;REQUEST=GetFeature&amp;amp;SRS=EPSG%3A4326&amp;amp;BBOX=235889.3974358975,5129558.5,653113.6025641025,5383804.5&lt;br /&gt;
&lt;br /&gt;
Controlando el resultado sale un largo contenido en XML que empieza con:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;wfs:FeatureCollection xsi:schemaLocation=&amp;quot;http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd                         http://mapserver.gis.umn.edu/mapserver http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;amp;SERVICE=WFS&amp;amp;VERSION=1.0.0&amp;amp;REQUEST=DescribeFeatureType&amp;amp;TYPENAME=lakespy2.shp&amp;amp;OUTPUTFORMAT=XMLSCHEMA&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;gml:boundedBy&amp;gt;&lt;br /&gt;
     &amp;lt;gml:Box srsName=&amp;quot;EPSG:4326&amp;quot;&amp;gt;&lt;br /&gt;
         ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este código XML describe todas las Features que corresponden a nuestro ''TypeName'' limitando el número de Features al valor de ''maxFeatures''. De esta manera podemos darnos cuenta que OpenLayers visualiza en color naranja sólo una pequeña parte de las lagunas que esta capa tiene.&lt;br /&gt;
&lt;br /&gt;
Cuidado: pedir todas las Features a Mapserver significaría arriesgarse que el servidor se demore mucho en contestar y que el browser se encuentre con demasiadas Features por renderizar con el riesgo que se bloquee.&lt;br /&gt;
&lt;br /&gt;
==Definir un filtro personalizados==&lt;br /&gt;
Para evitar el problema que tenemos con maxFeatures vamos a intentar visualizar sólo en un número limitado de Features y sólo las que queremos visualizar.&lt;br /&gt;
&lt;br /&gt;
Así que vamos a definir un filtro WFS que nos permita seleccionar las lagunas que tienen un ''AREA'' mayor que el valor ''10000000''.&lt;br /&gt;
&lt;br /&gt;
La imagen que sigue muestra el resultado del filtro WFS aplicado a nuestra capa. Es fácil ver que sólo las lagunas grandes han sido dibujadas con el color naranja.&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers-itasca-wfs+filter.jpg|thumb|none|400x400px|Capa WFS con filtro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El código de la página que contiene el filtro es el siguiente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 312px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://svn.openlayers.org/trunk/openlayers/lib/OpenLayers/Layer/WFS.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.901),&lt;br /&gt;
 					maxResolution: 'auto',&lt;br /&gt;
					controls: [&lt;br /&gt;
						new OpenLayers.Control.PanZoomBar(),&lt;br /&gt;
						new OpenLayers. Control. Navigation(),&lt;br /&gt;
						new OpenLayers.Control.LayerSwitcher({'ascending':false})&lt;br /&gt;
					]&lt;br /&gt;
					} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;Itasca WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
			&lt;br /&gt;
			layer_wfs = new OpenLayers.Layer.WFS( &amp;quot;Itasca WFS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;quot;,&lt;br /&gt;
                    { &lt;br /&gt;
						typename: 'lakespy2.shp',&lt;br /&gt;
						maxfeatures: 200,&lt;br /&gt;
						filter:&amp;quot;&amp;lt;Filter&amp;gt;&amp;lt;PropertyIsGreaterThan&amp;gt;&amp;lt;PropertyName&amp;gt;AREA&amp;lt;/PropertyName&amp;gt;&amp;lt;Literal&amp;gt;10000000&amp;lt;/Literal&amp;gt;&amp;lt;/PropertyIsGreaterThan&amp;gt;&amp;lt;/Filter&amp;gt;&amp;quot;&lt;br /&gt;
					} );&lt;br /&gt;
            &lt;br /&gt;
            map.addLayers([layer,layer_wfs]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS y WFS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          Ejemplo de utilizo de datos WMS y WFS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         mas texto aquì&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hay que notar que hemos tenido que utilizar un truco para evitar un error de la versión estable de OpenLayers y descargamos la biblioteca relativa a Layers WFS directamente del repositorio de desarrollo. Esto pasa actualmente con las versiones 2.7 y anteriores de OpenLayers.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     &amp;lt;script src=&amp;quot;http://svn.openlayers.org/trunk/openlayers/lib/OpenLayers/Layer/WFS.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Autores=&lt;br /&gt;
* [[User:ominiverdi| Lorenzo Becchi]]&lt;br /&gt;
* [[User:jsanz| Jorge Gaspar Sanz Salinas]]&lt;br /&gt;
&lt;br /&gt;
=Licencia=&lt;br /&gt;
*la licencia para este artículo es: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/deed.es).&lt;br /&gt;
* esta licencia permite:&lt;br /&gt;
** copiar, distribuir y comunicar públicamente la obra&lt;br /&gt;
** hacer obras derivadas&lt;br /&gt;
*bajo estas condiciones:&lt;br /&gt;
** '''Reconocimiento'''. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).&lt;br /&gt;
** Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.&lt;br /&gt;
** Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor&lt;br /&gt;
** Nada en esta licencia menoscaba o restringe los derechos morales del autor.&lt;br /&gt;
&lt;br /&gt;
=Referencias=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Duración=&lt;br /&gt;
Por esta clase se evalúa una duración de X horas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38976</id>
		<title>Crear servicios WMS y WFS con MS4W y gvSIG utilizando nuestro propio juego de datos</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38976"/>
		<updated>2009-06-02T23:55:27Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unos de los problemas principales en la publicación de datos geoespaciales en la web es la dificultad que lleva la configuración de los servidores de mapas.&lt;br /&gt;
&lt;br /&gt;
=Buscar los datos=&lt;br /&gt;
Si no se tiene un juego de datos propios se pueden utilizar algunos de los datos disponibles con licencia Libre que se encuentran en la red.&lt;br /&gt;
&lt;br /&gt;
==''MapServer Itasca Demo Application''==&lt;br /&gt;
Para comenzar necesitaremos el juego de datos libres ''Itasca''.&lt;br /&gt;
Tenemos una detallada explicación de dónde encontrarlo y cómo configurarlo en la lección [[Instalaci%C3%B3n_de_MS4W#Procedimiento_de_instalaci.C3.B3n_del_juego_de_datos_Itasca|Instalación de MS4W]].&lt;br /&gt;
&lt;br /&gt;
=Instalar la extensión de publicación para la web de gvSIG=&lt;br /&gt;
&lt;br /&gt;
Desde la [http://www.gvsig.gva.es/index.php?id=1803&amp;amp;L=0 página de Extensiones] de gvSIG podemos descargar la '''Extensión de publicación'''.&lt;br /&gt;
&lt;br /&gt;
La página de descarga es la siguiente:&lt;br /&gt;
&lt;br /&gt;
* http://www.gvsig.gva.es/index.php?id=2010&amp;amp;L=0&lt;br /&gt;
&lt;br /&gt;
El fichero en binario que instalamos para esta demostración es:&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/ficheros/Extensiones/gvsig-1_1_x-publishing-BN14-windows-i586.exe&lt;br /&gt;
&lt;br /&gt;
También está disponible un manual para la extensión:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/manuales/gvsig-1_1_x-publishing-man-v1-es.pdf.pdf&lt;br /&gt;
&lt;br /&gt;
El manual describe muy bien el proceso de instalación. Una vez instalado podemos lanzar gvSIG y proseguir con la lección.&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WMS=&lt;br /&gt;
&lt;br /&gt;
Antes que nada hay que crear una vista nueva con gvSIG y la llamaremos '''Itasca'''.&lt;br /&gt;
[[Image:Gvsig extension publicacion web shot1.png|thumb|none|400px|Crear una vista nueva con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Entre las propiedades de la vista hay que definir su proyección y nosotros vamos a escoger la proyección de nuestro juego de datos que, en el caso de Itasca, es ''EPSG:26915''. &lt;br /&gt;
[[Image:GvSig propriedades vista.jpg|thumb|none|400px|Definición de la proyección de nuestra vista]]&lt;br /&gt;
&lt;br /&gt;
Una vez creada la vista podemos añadir nuestros datos desde la carpeta:&lt;br /&gt;
 C:\MS4W\apps\mapserv-demo\data\&lt;br /&gt;
Iremos escogiendo las siguientes capas:&lt;br /&gt;
*&amp;lt;tt&amp;gt;ctyrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;dlgstln2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;lakespy2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;mcdrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gvSIG visualizará todos los ficheros dándole unos estilos por defecto.&lt;br /&gt;
[[Image:Gvsig itasca no style.jpg|thumb|none|400px|gvSIG visualizando los datos de Itasca]]&lt;br /&gt;
&lt;br /&gt;
Con el botón derecho sobre el nombre de la capa desde la leyenda es posible seleccionar las preferencias y definir un estilo personalizado para nuestras capas. En este caso hemos seleccionado la capa de los lagos y definido un estilo en intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-symbology-intervals.jpg|thumb|none|400px|Creando un estilo de visualización con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Una vez guardada la vista de gvSIG podemos volver a la ventana del ''Gestor de proyectos'' y seleccionar la herramienta de ''Publicación''. Se puede ver en la siguiente imagen como el estilo que hemos creado antes se aplica al mapa.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-publish.jpg|thumb|none|400px|Visualizando la herramienta de publicación y el mapa con el nuevo estilo de visualización]]&lt;br /&gt;
&lt;br /&gt;
Creando una nueva ''Publicación'' somos guiados paso a paso en el proceso de publicación en la web mediante un asistente.&lt;br /&gt;
El primer paso es seleccionar el servidor que tenemos disponible. En nuestro caso es un servidor ''UMN Mapserver'' versión 5.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-server.jpg|thumb|none|400px|Definiendo la ubicación de UMN Mapserver]]&lt;br /&gt;
&lt;br /&gt;
En segundo lugar hay que definir el lugar en el que guardar el fichero de configuración (''mapfile''). En nuestro caso un lugar útil puede ser:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-wms.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-pubish-mapfile.jpg|thumb|none|400px|Definiendo la ubicación del ''mapfile'' para nuestro servicio]]&lt;br /&gt;
&lt;br /&gt;
Otra pregunta importante cuando se configure un servicio en la red es a propósito de los metadatos WMS.&lt;br /&gt;
&lt;br /&gt;
OGC define los metadatos de los servicios para que quien utilice nuestro servidor tenga una idea adecuada de los datos que se acercan a descargar. Es importante por eso describir bien los metadatos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-metadata.jpg|thumb|none|400px|Definiendo los Metadatos del servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
Un paso importante es escoger las capas, disponibles en nuestra ''vista'', que vamos a querer visualizar. Seleccionamos las 4 que hemos cargado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-layers.jpg|thumb|none|400px|Seleccionando las capas a publicar]]&lt;br /&gt;
&lt;br /&gt;
Ya estamos acabando, pulsando el botón ''publicar'', esperamos el mensaje de confirmación.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-end.jpg|thumb|none|400px|El ''mapfile'' ha sido guardado en el lugar requerido y el servicio WMS está disponible]]&lt;br /&gt;
&lt;br /&gt;
El ultimo paso que tenemos que dar es editar a mano el Mapfile y añadir la proyección geografica  EPSG:4326 (LAT/LONG) a las ofrecida por nuestro servidor WMS.&lt;br /&gt;
En la linea 25 de nuestro Mafile cambiamos:&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915&amp;quot;&lt;br /&gt;
con&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915   EPSG:4326&amp;quot;&lt;br /&gt;
Este cambio hace que Mapserver pueda servir nuestros datos en dos diferente sistemas de proyección. Es el Mapserver mismo que se encarga de re-proyectar los datos. &lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio creado==&lt;br /&gt;
&lt;br /&gt;
Como en la lección [[Openlayers: configuración mínima con biblioteca en remoto]] hemos visto cómo crear una pagina web que enseñe nuestros contenidos ahora podemos hacerlo con nuestro nuevo servicio WMS.&lt;br /&gt;
&lt;br /&gt;
===Código de ejemplo===&lt;br /&gt;
para crear la página web necesitamos crear un nuevo fichero con un editor de texto sencillo.&lt;br /&gt;
este fichero lo llamaremos:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\ol-itasca-wms.html&lt;br /&gt;
&lt;br /&gt;
luego hay que poner el siguiente texto en ella:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 512px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&lt;br /&gt;
 					maxResolution: 'auto',} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
                    &lt;br /&gt;
                    &lt;br /&gt;
            map.addLayers([layer]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          El uso básico de OpenLayers con una capa WMS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         más texto aquí&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comprobar la página web con el mapa===&lt;br /&gt;
Una vez guardada la página web con el código anterior podemos comprobar con nuestro navegador web (p.ej. Mozilla Firefox, Internet Explorer, etc.) si la página responde como esperamos:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol-itasca-wms.html&lt;br /&gt;
&lt;br /&gt;
Este es el resultado:&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers-show-ows-from-gvsig-mapserver.jpg|thumb|none|400px|Publicación de nuestro servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
===Todo lo que hay que notar en nuestro código===&lt;br /&gt;
&lt;br /&gt;
El código que hemos utilizado es sencillo pero hay que estar muy atentos a que lo que escriba sea exacto y tenga sentido.&lt;br /&gt;
&lt;br /&gt;
====El código JavaScript personalizado====&lt;br /&gt;
&lt;br /&gt;
Podemos notar como la creación del objeto '''map''' es muy sencilla porque no tenemos que definir la unidad de medida ni la proyección porque nuestro servicio es en EPSG:4326 que es la usada por defecto en OpenLayers. La definición de la Extent es en coordenadas geográficas (-94.428,47.0169,-93.0557,47.9017) y non en EPSG:26915 NAD83/UTMzone15N (378107,5193120,510896,5320243) que es la proyección originaria de los datos.&lt;br /&gt;
&lt;br /&gt;
Además hay que notar como en la creación del objeto '''layer''' la direción del servidor y el listado de las capas coinciden con las que hemos creado antes.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            map = &amp;lt;span style='background-color:yellow'&amp;gt;new OpenLayers.Map( 'map',{&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxResolution: 'auto',} &amp;lt;/span&amp;gt;&lt;br /&gt;
 				&amp;lt;span style='background-color:yellow'&amp;gt;);&amp;lt;/span&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/&amp;lt;span style='background-color:yellow'&amp;gt;itasca-wms.map&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
                   {layers: '&amp;lt;span style='background-color:yellow'&amp;gt;ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp&amp;lt;/span&amp;gt;'} );&lt;br /&gt;
                    &lt;br /&gt;
 				);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WFS=&lt;br /&gt;
Para un función que normalmente requiere meterle mano al texto contenido en el ''mapfile'', gvSIG nos ayuda una vez más.&lt;br /&gt;
&lt;br /&gt;
El procedimiento es prácticamente igual al que seguimos para crear el servicio WMS.&lt;br /&gt;
&lt;br /&gt;
Se crea una nueva ''publicación'' desde la ventana del ''gestor de proyectos''. &lt;br /&gt;
&lt;br /&gt;
El asistente nos pregunta qué servidor utilizar y qué servicio crear. El servicio seleccionado por defecto es el WMS pero también podemos escoger el WFS, que es precisamente lo que vamos a hacer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-server.jpg|thumb|none|400px|Seleccionando el servidor y el servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En el paso siguiente tenemos que decir dónde queremos guardar el ''mapfile''.&lt;br /&gt;
En nuetro caso:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-test-wfs.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-mapfile.jpg|thumb|none|400px|Especificando la ubicación del ''mapfile'']]&lt;br /&gt;
&lt;br /&gt;
Ahora nos toca otra vez definir los metadatos para este recurso. Hay que poner atención sobre el hecho de que un servicio sin buena descripción no es un buen servicio.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-metadata.jpg|thumb|none|400px|Definiendo los metadatos del servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En la selección de capas vamos poniendo todos las capas que nuestra vista ofrece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-layers.jpg|thumb|none|400px|Añadiendo las capas al servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
Ahora sólo queda el último paso y gvSIG nos dirá si todo ha ido correctamente.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-end.jpg|thumb|none|400px|Mensaje de confirmación de que el servicio WFS se ha creado]]&lt;br /&gt;
&lt;br /&gt;
El ultimo paso que tenemos que realizar es editar a mano el Mapfile, modificar&lt;br /&gt;
&lt;br /&gt;
  PROJECTION&lt;br /&gt;
      &amp;quot;init=epsg:26915&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
por&lt;br /&gt;
&lt;br /&gt;
  PROJECTION&lt;br /&gt;
      &amp;quot;init=epsg:4326&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio WFS==&lt;br /&gt;
&lt;br /&gt;
Para comprobar si todo ha ido bien podemos pedir el &amp;lt;tt&amp;gt;GetCapabilities&amp;lt;/tt&amp;gt; de nuestro servicio:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=C%3A%5Cms4w%5Capps%5Cmapserv-demo%5Citasca-test-wfs.map&amp;amp;request=getCapabilities&amp;amp;service=WFS&lt;br /&gt;
&lt;br /&gt;
Echad un vistazo un momento al código XML resultante de nuestra llamada. Los metadatos que describen el contenido deberían describir no sólo el juego de datos sino también cada capa por separado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Mapserver-wfs-getCapabilities.jpg|thumb|none|400px|El output del GetCapabilities]]&lt;br /&gt;
&lt;br /&gt;
Otro test posible es el pedido de una Feature con la dirección:&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=C%3A%5Cms4w%5Capps%5Cmapserv-demo%5Citasca-test-wfs.map&amp;amp;typename=lakespy2.shp&amp;amp;maxfeatures=200&amp;amp;SERVICE=WFS&amp;amp;VERSION=1.0.0&amp;amp;REQUEST=GetFeature&amp;amp;SRS=EPSG%3A4326&amp;amp;BBOX=-95.19268076923078,46.57485,-92.29101923076922,48.343050000000005&lt;br /&gt;
el codigo resultante es el listado de todas las geometrias disponibles por esta capa limitando el output a 200 features (maxfeatures).&lt;br /&gt;
&lt;br /&gt;
=Autores=&lt;br /&gt;
* [[User:ominiverdi| Lorenzo Becchi]]&lt;br /&gt;
* [[User:jsanz| Jorge Gaspar Sanz Salinas]]&lt;br /&gt;
&lt;br /&gt;
=Licencia=&lt;br /&gt;
*la licencia por este articulo es: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/deed.es).&lt;br /&gt;
* esta licencia permite:&lt;br /&gt;
** copiar, distribuir y comunicar públicamente la obra&lt;br /&gt;
** hacer obras derivadas&lt;br /&gt;
*bajo estas condiciones:&lt;br /&gt;
** '''Reconocimiento'''. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).&lt;br /&gt;
** Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.&lt;br /&gt;
** Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor&lt;br /&gt;
** Nada en esta licencia menoscaba o restringe los derechos morales del autor.&lt;br /&gt;
&lt;br /&gt;
=Referencias=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Duración=&lt;br /&gt;
Por esta clase se evalúa una duración de X oras&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Openlayers:_visualizaci%C3%B3n_de_capas_WFS&amp;diff=38431</id>
		<title>Openlayers: visualización de capas WFS</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Openlayers:_visualizaci%C3%B3n_de_capas_WFS&amp;diff=38431"/>
		<updated>2009-05-11T18:52:48Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Openlayers: visualización de capas WFS=&lt;br /&gt;
===Comenzando con un WMS===&lt;br /&gt;
Si hemos seguido las indicaciones de [[Openlayers: configuración mínima con biblioteca en remoto]], tendremos una página web que visualiza el servicio WMS del juego de datos ''Itasca'':&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol.html&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers itasca base map.jpg|thumb|none|400x400px|El WMS visualizado por Openlayers en la página web]]&lt;br /&gt;
&lt;br /&gt;
==Abrir una capa WFS con OpenLayers==&lt;br /&gt;
Utilizando el mismo código del ejemplo WMS vamos a añadir una capa WFS.&lt;br /&gt;
&lt;br /&gt;
Abrimos un nuevo fichero:&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\ol-itasca-wfs.html&lt;br /&gt;
&lt;br /&gt;
el código que vamos a utilizar es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 312px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(378107,5193120,510896,5320243),&lt;br /&gt;
 					maxResolution: 'auto',&lt;br /&gt;
					controls: [&lt;br /&gt;
						new OpenLayers.Control.PanZoomBar(),&lt;br /&gt;
						new OpenLayers. Control. Navigation(),&lt;br /&gt;
						new OpenLayers.Control.LayerSwitcher({'ascending':false})&lt;br /&gt;
					]&lt;br /&gt;
					} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;Itasca WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
			&lt;br /&gt;
            layer_wfs = new OpenLayers.Layer.WFS( &amp;quot;Itasca WFS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;quot;,&lt;br /&gt;
                    { typename: 'lakespy2.shp', maxfeatures: 200 } );&lt;br /&gt;
            &lt;br /&gt;
            map.addLayers([layer,layer_wfs]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS y WFS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          Ejemplo de utilizo de datos WMS y WFS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         mas texto aquì&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el link a nuestra pagina debería ser:&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol-itasca-wfs.html&lt;br /&gt;
[[Image:Openlayers-itasca-wfs-maxfeatures.jpg|thumb|none|400x400px|Capa WFS con maxFeatures = 100]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lo que vemos en la página que acabamos de crear son dos capas, una WMS que ya conocemos y una capa WFS que está renderizada por el OpenLayers gracias a las bibliotecas de dibujo vectorial que los browser modernos nos ofrecen.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos en los pedidos que el browser hace podremos comprobar que al UMN Mapserver llega:&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;amp;typename=lakespy2.shp&amp;amp;maxfeatures=200&amp;amp;SERVICE=WFS&amp;amp;VERSION=1.0.0&amp;amp;REQUEST=GetFeature&amp;amp;SRS=EPSG%3A4326&amp;amp;BBOX=235889.3974358975,5129558.5,653113.6025641025,5383804.5&lt;br /&gt;
&lt;br /&gt;
Controlando el resultado sale un largo contenido en XML que empieza con:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;wfs:FeatureCollection xsi:schemaLocation=&amp;quot;http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd                         http://mapserver.gis.umn.edu/mapserver http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;amp;SERVICE=WFS&amp;amp;VERSION=1.0.0&amp;amp;REQUEST=DescribeFeatureType&amp;amp;TYPENAME=lakespy2.shp&amp;amp;OUTPUTFORMAT=XMLSCHEMA&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;gml:boundedBy&amp;gt;&lt;br /&gt;
     &amp;lt;gml:Box srsName=&amp;quot;EPSG:4326&amp;quot;&amp;gt;&lt;br /&gt;
         ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este código XML describe todas las Features que corresponden a nuestro ''TypeName'' limitando el número de Features al valor de ''maxFeatures''. De esta manera podemos darnos cuenta que OpenLayers visualiza en color naranja sólo una pequeña parte de las lagunas que esta capa tiene.&lt;br /&gt;
&lt;br /&gt;
Cuidado: pedir todas las Features a Mapserver significaría arriesgarse que el servidor se demore mucho en contestar y que el browser se encuentre con demasiadas Features por renderizar con el riesgo que se bloquee.&lt;br /&gt;
&lt;br /&gt;
==Definir un filtro personalizados==&lt;br /&gt;
Para evitar el problema que tenemos con maxFeatures vamos a intentar visualizar sólo en un número limitado de Features y sólo las que queremos visualizar.&lt;br /&gt;
&lt;br /&gt;
Así que vamos a definir un filtro WFS que nos permita seleccionar las lagunas que tienen un ''AREA'' mayor que el valor ''10000000''.&lt;br /&gt;
&lt;br /&gt;
La imagen que sigue muestra el resultado del filtro WFS aplicado a nuestra capa. Es fácil ver que sólo las lagunas grandes han sido dibujadas con el color naranja.&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers-itasca-wfs+filter.jpg|thumb|none|400x400px|Capa WFS con filtro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El código de la página que contiene el filtro es el siguiente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 312px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://svn.openlayers.org/trunk/openlayers/lib/OpenLayers/Layer/WFS.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(378107,5193120,510896,5320243),&lt;br /&gt;
 					maxResolution: 'auto',&lt;br /&gt;
					controls: [&lt;br /&gt;
						new OpenLayers.Control.PanZoomBar(),&lt;br /&gt;
						new OpenLayers. Control. Navigation(),&lt;br /&gt;
						new OpenLayers.Control.LayerSwitcher({'ascending':false})&lt;br /&gt;
					]&lt;br /&gt;
					} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;Itasca WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
			&lt;br /&gt;
			layer_wfs = new OpenLayers.Layer.WFS( &amp;quot;Itasca WFS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-test-wfs.map&amp;quot;,&lt;br /&gt;
                    { &lt;br /&gt;
						typename: 'lakespy2.shp',&lt;br /&gt;
						maxfeatures: 200,&lt;br /&gt;
						filter:&amp;quot;&amp;lt;Filter&amp;gt;&amp;lt;PropertyIsGreaterThan&amp;gt;&amp;lt;PropertyName&amp;gt;AREA&amp;lt;/PropertyName&amp;gt;&amp;lt;Literal&amp;gt;10000000&amp;lt;/Literal&amp;gt;&amp;lt;/PropertyIsGreaterThan&amp;gt;&amp;lt;/Filter&amp;gt;&amp;quot;&lt;br /&gt;
					} );&lt;br /&gt;
            &lt;br /&gt;
            map.addLayers([layer,layer_wfs]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS y WFS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          Ejemplo de utilizo de datos WMS y WFS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         mas texto aquì&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hay que notar que hemos tenido que utilizar un truco para evitar un error de la versión estable de OpenLayers y descargamos la biblioteca relativa a Layers WFS directamente del repositorio de desarrollo. Esto pasa actualmente con las versiones 2.7 y anteriores de OpenLayers.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     &amp;lt;script src=&amp;quot;http://svn.openlayers.org/trunk/openlayers/lib/OpenLayers/Layer/WFS.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Autores=&lt;br /&gt;
* [[User:ominiverdi| Lorenzo Becchi]]&lt;br /&gt;
* [[User:jsanz| Jorge Gaspar Sanz Salinas]]&lt;br /&gt;
&lt;br /&gt;
=Licencia=&lt;br /&gt;
*la licencia para este artículo es: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/deed.es).&lt;br /&gt;
* esta licencia permite:&lt;br /&gt;
** copiar, distribuir y comunicar públicamente la obra&lt;br /&gt;
** hacer obras derivadas&lt;br /&gt;
*bajo estas condiciones:&lt;br /&gt;
** '''Reconocimiento'''. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).&lt;br /&gt;
** Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.&lt;br /&gt;
** Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor&lt;br /&gt;
** Nada en esta licencia menoscaba o restringe los derechos morales del autor.&lt;br /&gt;
&lt;br /&gt;
=Referencias=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Duración=&lt;br /&gt;
Por esta clase se evalúa una duración de X horas&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38359</id>
		<title>Crear servicios WMS y WFS con MS4W y gvSIG utilizando nuestro propio juego de datos</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38359"/>
		<updated>2009-05-06T23:48:20Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unos de los problemas principales en la publicación de datos geoespaciales en la web es la dificultad que lleva la configuración de los servidores de mapas.&lt;br /&gt;
&lt;br /&gt;
=Buscar los datos=&lt;br /&gt;
Si no se tiene un juego de datos propios se pueden utilizar algunos de los datos disponibles con licencia Libre que se encuentran en la red.&lt;br /&gt;
&lt;br /&gt;
==''MapServer Itasca Demo Application''==&lt;br /&gt;
Para comenzar necesitaremos el juego de datos libres ''Itasca''.&lt;br /&gt;
Tenemos una detallada explicación de dónde encontrarlo y cómo configurarlo en la lección [[Instalaci%C3%B3n_de_MS4W#Procedimiento_de_instalaci.C3.B3n_del_juego_de_datos_Itasca|Instalación de MS4W]].&lt;br /&gt;
&lt;br /&gt;
=Instalar la extensión de publicación para la web de gvSIG=&lt;br /&gt;
&lt;br /&gt;
Desde la [http://www.gvsig.gva.es/index.php?id=1803&amp;amp;L=0 página de Extensiones] de gvSIG podemos descargar la '''Extensión de publicación'''.&lt;br /&gt;
&lt;br /&gt;
La página de descarga es la siguiente:&lt;br /&gt;
&lt;br /&gt;
* http://www.gvsig.gva.es/index.php?id=2010&amp;amp;L=0&lt;br /&gt;
&lt;br /&gt;
El fichero en binario que instalamos para esta demostración es:&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/ficheros/Extensiones/gvsig-1_1_x-publishing-BN14-windows-i586.exe&lt;br /&gt;
&lt;br /&gt;
También está disponible un manual para la extensión:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/manuales/gvsig-1_1_x-publishing-man-v1-es.pdf.pdf&lt;br /&gt;
&lt;br /&gt;
El manual describe muy bien el proceso de instalación. Una vez instalado podemos lanzar gvSIG y proseguir con la lección.&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WMS=&lt;br /&gt;
&lt;br /&gt;
Antes que nada hay que crear una vista nueva con gvSIG y la llamaremos '''Itasca'''.&lt;br /&gt;
[[Image:Gvsig extension publicacion web shot1.png|thumb|none|400px|Crear una vista nueva con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Entre las propiedades de la vista hay que definir su proyección y nosotros vamos a escoger la proyección de nuestro juego de datos que, en el caso de Itasca, es ''EPSG:26915''. &lt;br /&gt;
[[Image:GvSig propriedades vista.jpg|thumb|none|400px|Definición de la proyección de nuestra vista]]&lt;br /&gt;
&lt;br /&gt;
Una vez creada la vista podemos añadir nuestros datos desde la carpeta:&lt;br /&gt;
 C:\MS4W\apps\mapserv-demo\data\&lt;br /&gt;
Iremos escogiendo las siguientes capas:&lt;br /&gt;
*&amp;lt;tt&amp;gt;ctyrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;dlgstln2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;lakespy2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;mcdrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gvSIG visualizará todos los ficheros dándole unos estilos por defecto.&lt;br /&gt;
[[Image:Gvsig itasca no style.jpg|thumb|none|400px|gvSIG visualizando los datos de Itasca]]&lt;br /&gt;
&lt;br /&gt;
Con el botón derecho sobre el nombre de la capa desde la leyenda es posible seleccionar las preferencias y definir un estilo personalizado para nuestras capas. En este caso hemos seleccionado la capa de los lagos y definido un estilo en intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-symbology-intervals.jpg|thumb|none|400px|Creando un estilo de visualización con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Una vez guardada la vista de gvSIG podemos volver a la ventana del ''Gestor de proyectos'' y seleccionar la herramienta de ''Publicación''. Se puede ver en la siguiente imagen como el estilo que hemos creado antes se aplica al mapa.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-publish.jpg|thumb|none|400px|Visualizando la herramienta de publicación y el mapa con el nuevo estilo de visualización]]&lt;br /&gt;
&lt;br /&gt;
Creando una nueva ''Publicación'' somos guiados paso a paso en el proceso de publicación en la web mediante un asistente.&lt;br /&gt;
El primer paso es seleccionar el servidor que tenemos disponible. En nuestro caso es un servidor ''UMN Mapserver'' versión 5.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-server.jpg|thumb|none|400px|Definiendo la ubicación de UMN Mapserver]]&lt;br /&gt;
&lt;br /&gt;
En segundo lugar hay que definir el lugar en el que guardar el fichero de configuración (''mapfile''). En nuestro caso un lugar útil puede ser:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-wms.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-pubish-mapfile.jpg|thumb|none|400px|Definiendo la ubicación del ''mapfile'' para nuestro servicio]]&lt;br /&gt;
&lt;br /&gt;
Otra pregunta importante cuando se configure un servicio en la red es a propósito de los metadatos WMS.&lt;br /&gt;
&lt;br /&gt;
OGC define los metadatos de los servicios para que quien utilice nuestro servidor tenga una idea adecuada de los datos que se acercan a descargar. Es importante por eso describir bien los metadatos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-metadata.jpg|thumb|none|400px|Definiendo los Metadatos del servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
Un paso importante es escoger las capas, disponibles en nuestra ''vista'', que vamos a querer visualizar. Seleccionamos las 4 que hemos cargado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-layers.jpg|thumb|none|400px|Seleccionando las capas a publicar]]&lt;br /&gt;
&lt;br /&gt;
Ya estamos acabando, pulsando el botón ''publicar'', esperamos el mensaje de confirmación.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-end.jpg|thumb|none|400px|El ''mapfile'' ha sido guardado en el lugar requerido y el servicio WMS está disponible]]&lt;br /&gt;
&lt;br /&gt;
El ultimo paso que tenemos que dar es editar a mano el Mapfile y añadir la proyección geografica  EPSG:4326 (LAT/LONG) a las ofrecida por nuestro servidor WMS.&lt;br /&gt;
En la linea 25 de nuestro Mafile cambiamos:&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915&amp;quot;&lt;br /&gt;
con&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915   EPSG:4326&amp;quot;&lt;br /&gt;
Este cambio hace que Mapserver pueda servir nuestros datos en dos diferente sistemas de proyección. Es el Mapserver mismo que se encarga de re-proyectar los datos. &lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio creado==&lt;br /&gt;
&lt;br /&gt;
Como en la lección [[Openlayers: configuración mínima con biblioteca en remoto]] hemos visto cómo crear una pagina web que enseñe nuestros contenidos ahora podemos hacerlo con nuestro nuevo servicio WMS.&lt;br /&gt;
&lt;br /&gt;
===Código de ejemplo===&lt;br /&gt;
para crear la página web necesitamos crear un nuevo fichero con un editor de texto sencillo.&lt;br /&gt;
este fichero lo llamaremos:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\ol-itasca-wms.html&lt;br /&gt;
&lt;br /&gt;
luego hay que poner el siguiente texto en ella:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 512px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&lt;br /&gt;
 					maxResolution: 'auto',} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
                    &lt;br /&gt;
                    &lt;br /&gt;
            map.addLayers([layer]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          El uso básico de OpenLayers con una capa WMS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         más texto aquí&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comprobar la página web con el mapa===&lt;br /&gt;
Una vez guardada la página web con el código anterior podemos comprobar con nuestro navegador web (p.ej. Mozilla Firefox, Internet Explorer, etc.) si la página responde como esperamos:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol-itasca-wms.html&lt;br /&gt;
&lt;br /&gt;
Este es el resultado:&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers-show-ows-from-gvsig-mapserver.jpg|thumb|none|400px|Publicación de nuestro servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
===Todo lo que hay que notar en nuestro código===&lt;br /&gt;
&lt;br /&gt;
El código que hemos utilizado es sencillo pero hay que estar muy atentos a que lo que escriba sea exacto y tenga sentido.&lt;br /&gt;
&lt;br /&gt;
====El código JavaScript personalizado====&lt;br /&gt;
&lt;br /&gt;
Podemos notar como la creación del objeto '''map''' es muy sencilla porque no tenemos que definir la unidad de medida ni la proyección porque nuestro servicio es en EPSG:4326 que es la usada por defecto en OpenLayers. La definición de la Extent es en coordenadas geográficas (-94.428,47.0169,-93.0557,47.9017) y non en EPSG:26915 NAD83/UTMzone15N (378107,5193120,510896,5320243) que es la proyección originaria de los datos.&lt;br /&gt;
&lt;br /&gt;
Además hay que notar como en la creación del objeto '''layer''' la direción del servidor y el listado de las capas coinciden con las que hemos creado antes.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            map = &amp;lt;span style='background-color:yellow'&amp;gt;new OpenLayers.Map( 'map',{&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxResolution: 'auto',} &amp;lt;/span&amp;gt;&lt;br /&gt;
 				&amp;lt;span style='background-color:yellow'&amp;gt;);&amp;lt;/span&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/&amp;lt;span style='background-color:yellow'&amp;gt;itasca-wms.map&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
                   {layers: '&amp;lt;span style='background-color:yellow'&amp;gt;ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp&amp;lt;/span&amp;gt;'} );&lt;br /&gt;
                    &lt;br /&gt;
 				);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WFS=&lt;br /&gt;
Para un función que normalmente requiere meterle mano al texto contenido en el ''mapfile'', gvSIG nos ayuda una vez más.&lt;br /&gt;
&lt;br /&gt;
El procedimiento es prácticamente igual al que seguimos para crear el servicio WMS.&lt;br /&gt;
&lt;br /&gt;
Se crea una nueva ''publicación'' desde la ventana del ''gestor de proyectos''. &lt;br /&gt;
&lt;br /&gt;
El asistente nos pregunta qué servidor utilizar y qué servicio crear. El servicio seleccionado por defecto es el WMS pero también podemos escoger el WFS, que es precisamente lo que vamos a hacer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-server.jpg|thumb|none|400px|Seleccionando el servidor y el servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En el paso siguiente tenemos que decir dónde queremos guardar el ''mapfile''.&lt;br /&gt;
En nuetro caso:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-test-wfs.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-mapfile.jpg|thumb|none|400px|Especificando la ubicación del ''mapfile'']]&lt;br /&gt;
&lt;br /&gt;
Ahora nos toca otra vez definir los metadatos para este recurso. Hay que poner atención sobre el hecho de que un servicio sin buena descripción no es un buen servicio.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-metadata.jpg|thumb|none|400px|Definiendo los metadatos del servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En la selección de capas vamos poniendo todos las capas que nuestra vista ofrece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-layers.jpg|thumb|none|400px|Añadiendo las capas al servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
Ahora sólo queda el último paso y gvSIG nos dirá si todo ha ido correctamente.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-end.jpg|thumb|none|400px|Mensaje de confirmación de que el servicio WFS se ha creado]]&lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio WFS==&lt;br /&gt;
&lt;br /&gt;
Para comprobar si todo ha ido bien podemos pedir el &amp;lt;tt&amp;gt;GetCapabilities&amp;lt;/tt&amp;gt; de nuestro servicio:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=C%3A%5Cms4w%5Capps%5Cmapserv-demo%5Citasca-test-wfs.map&amp;amp;request=getCapabilities&amp;amp;service=WFS&lt;br /&gt;
&lt;br /&gt;
Echad un vistazo un momento al código XML resultante de nuestra llamada. Los metadatos que describen el contenido deberían describir no sólo el juego de datos sino también cada capa por separado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Mapserver-wfs-getCapabilities.jpg|thumb|none|400px|El output del GetCapabilities]]&lt;br /&gt;
&lt;br /&gt;
=Autores=&lt;br /&gt;
* [[User:ominiverdi| Lorenzo Becchi]]&lt;br /&gt;
* [[User:jsanz| Jorge Gaspar Sanz Salinas]]&lt;br /&gt;
&lt;br /&gt;
=Licencia=&lt;br /&gt;
*la licencia por este articulo es: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/deed.es).&lt;br /&gt;
* esta licencia permite:&lt;br /&gt;
** copiar, distribuir y comunicar públicamente la obra&lt;br /&gt;
** hacer obras derivadas&lt;br /&gt;
*bajo estas condiciones:&lt;br /&gt;
** '''Reconocimiento'''. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).&lt;br /&gt;
** Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.&lt;br /&gt;
** Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor&lt;br /&gt;
** Nada en esta licencia menoscaba o restringe los derechos morales del autor.&lt;br /&gt;
&lt;br /&gt;
=Referencias=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Duración=&lt;br /&gt;
Por esta clase se evalúa una duración de X oras&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38358</id>
		<title>Crear servicios WMS y WFS con MS4W y gvSIG utilizando nuestro propio juego de datos</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38358"/>
		<updated>2009-05-06T23:46:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unos de los problemas principales en la publicación de datos geoespaciales en la web es la dificultad que lleva la configuración de los servidores de mapas.&lt;br /&gt;
&lt;br /&gt;
=Buscar los datos=&lt;br /&gt;
Si no se tiene un juego de datos propios se pueden utilizar algunos de los datos disponibles con licencia Libre que se encuentran en la red.&lt;br /&gt;
&lt;br /&gt;
==''MapServer Itasca Demo Application''==&lt;br /&gt;
Para comenzar necesitaremos el juego de datos libres ''Itasca''.&lt;br /&gt;
Tenemos una detallada explicación de dónde encontrarlo y cómo configurarlo en la lección [[Instalaci%C3%B3n_de_MS4W#Procedimiento_de_instalaci.C3.B3n_del_juego_de_datos_Itasca|Instalación de MS4W]].&lt;br /&gt;
&lt;br /&gt;
=Instalar la extensión de publicación para la web de gvSIG=&lt;br /&gt;
&lt;br /&gt;
Desde la [http://www.gvsig.gva.es/index.php?id=1803&amp;amp;L=0 página de Extensiones] de gvSIG podemos descargar la '''Extensión de publicación'''.&lt;br /&gt;
&lt;br /&gt;
La página de descarga es la siguiente:&lt;br /&gt;
&lt;br /&gt;
* http://www.gvsig.gva.es/index.php?id=2010&amp;amp;L=0&lt;br /&gt;
&lt;br /&gt;
El fichero en binario que instalamos para esta demostración es:&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/ficheros/Extensiones/gvsig-1_1_x-publishing-BN14-windows-i586.exe&lt;br /&gt;
&lt;br /&gt;
También está disponible un manual para la extensión:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/manuales/gvsig-1_1_x-publishing-man-v1-es.pdf.pdf&lt;br /&gt;
&lt;br /&gt;
El manual describe muy bien el proceso de instalación. Una vez instalado podemos lanzar gvSIG y proseguir con la lección.&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WMS=&lt;br /&gt;
&lt;br /&gt;
Antes que nada hay que crear una vista nueva con gvSIG y la llamaremos '''Itasca'''.&lt;br /&gt;
[[Image:Gvsig extension publicacion web shot1.png|thumb|none|400px|Crear una vista nueva con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Entre las propiedades de la vista hay que definir su proyección y nosotros vamos a escoger la proyección de nuestro juego de datos que, en el caso de Itasca, es ''EPSG:26915''. &lt;br /&gt;
[[Image:GvSig propriedades vista.jpg|thumb|none|400px|Definición de la proyección de nuestra vista]]&lt;br /&gt;
&lt;br /&gt;
Una vez creada la vista podemos añadir nuestros datos desde la carpeta:&lt;br /&gt;
 C:\MS4W\apps\mapserv-demo\data\&lt;br /&gt;
Iremos escogiendo las siguientes capas:&lt;br /&gt;
*&amp;lt;tt&amp;gt;ctyrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;dlgstln2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;lakespy2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;mcdrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gvSIG visualizará todos los ficheros dándole unos estilos por defecto.&lt;br /&gt;
[[Image:Gvsig itasca no style.jpg|thumb|none|400px|gvSIG visualizando los datos de Itasca]]&lt;br /&gt;
&lt;br /&gt;
Con el botón derecho sobre el nombre de la capa desde la leyenda es posible seleccionar las preferencias y definir un estilo personalizado para nuestras capas. En este caso hemos seleccionado la capa de los lagos y definido un estilo en intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-symbology-intervals.jpg|thumb|none|400px|Creando un estilo de visualización con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Una vez guardada la vista de gvSIG podemos volver a la ventana del ''Gestor de proyectos'' y seleccionar la herramienta de ''Publicación''. Se puede ver en la siguiente imagen como el estilo que hemos creado antes se aplica al mapa.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-publish.jpg|thumb|none|400px|Visualizando la herramienta de publicación y el mapa con el nuevo estilo de visualización]]&lt;br /&gt;
&lt;br /&gt;
Creando una nueva ''Publicación'' somos guiados paso a paso en el proceso de publicación en la web mediante un asistente.&lt;br /&gt;
El primer paso es seleccionar el servidor que tenemos disponible. En nuestro caso es un servidor ''UMN Mapserver'' versión 5.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-server.jpg|thumb|none|400px|Definiendo la ubicación de UMN Mapserver]]&lt;br /&gt;
&lt;br /&gt;
En segundo lugar hay que definir el lugar en el que guardar el fichero de configuración (''mapfile''). En nuestro caso un lugar útil puede ser:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-wms.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-pubish-mapfile.jpg|thumb|none|400px|Definiendo la ubicación del ''mapfile'' para nuestro servicio]]&lt;br /&gt;
&lt;br /&gt;
Otra pregunta importante cuando se configure un servicio en la red es a propósito de los metadatos WMS.&lt;br /&gt;
&lt;br /&gt;
OGC define los metadatos de los servicios para que quien utilice nuestro servidor tenga una idea adecuada de los datos que se acercan a descargar. Es importante por eso describir bien los metadatos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-metadata.jpg|thumb|none|400px|Definiendo los Metadatos del servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
Un paso importante es escoger las capas, disponibles en nuestra ''vista'', que vamos a querer visualizar. Seleccionamos las 4 que hemos cargado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-layers.jpg|thumb|none|400px|Seleccionando las capas a publicar]]&lt;br /&gt;
&lt;br /&gt;
Ya estamos acabando, pulsando el botón ''publicar'', esperamos el mensaje de confirmación.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-end.jpg|thumb|none|400px|El ''mapfile'' ha sido guardado en el lugar requerido y el servicio WMS está disponible]]&lt;br /&gt;
&lt;br /&gt;
El ultimo paso que tenemos que dar es editar a mano el Mapfile y añadir la proyección geografica  EPSG:4326 (LAT/LONG) a las ofrecida por nuestro servidor WMS.&lt;br /&gt;
En la linea 25 de nuestro Mafile cambiamos:&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915&amp;quot;&lt;br /&gt;
con&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915   EPSG:4326&amp;quot;&lt;br /&gt;
Este cambio hace que Mapserver pueda servir nuestros datos en dos diferente sistemas de proyección. Es el Mapserver mismo que se encarga de re-proyectar los datos. &lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio creado==&lt;br /&gt;
&lt;br /&gt;
Como en la lección [[Openlayers: configuración mínima con biblioteca en remoto]] hemos visto cómo crear una pagina web que enseñe nuestros contenidos ahora podemos hacerlo con nuestro nuevo servicio WMS.&lt;br /&gt;
&lt;br /&gt;
===Código de ejemplo===&lt;br /&gt;
para crear la página web necesitamos crear un nuevo fichero con un editor de texto sencillo.&lt;br /&gt;
este fichero lo llamaremos:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\ol-itasca-wms.html&lt;br /&gt;
&lt;br /&gt;
luego hay que poner el siguiente texto en ella:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 512px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&lt;br /&gt;
 					maxResolution: 'auto',} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
                    &lt;br /&gt;
                    &lt;br /&gt;
            map.addLayers([layer]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          El uso básico de OpenLayers con una capa WMS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         más texto aquí&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comprobar la página web con el mapa===&lt;br /&gt;
Una vez guardada la página web con el código anterior podemos comprobar con nuestro navegador web (p.ej. Mozilla Firefox, Internet Explorer, etc.) si la página responde como esperamos:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol-itasca-test.html&lt;br /&gt;
&lt;br /&gt;
Este es el resultado:&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers-show-ows-from-gvsig-mapserver.jpg|thumb|none|400px|Publicación de nuestro servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
===Todo lo que hay que notar en nuestro código===&lt;br /&gt;
&lt;br /&gt;
El código que hemos utilizado es sencillo pero hay que estar muy atentos a que lo que escriba sea exacto y tenga sentido.&lt;br /&gt;
&lt;br /&gt;
====El código JavaScript personalizado====&lt;br /&gt;
&lt;br /&gt;
Podemos notar como la creación del objeto '''map''' es muy sencilla porque no tenemos que definir la unidad de medida ni la proyección porque nuestro servicio es en EPSG:4326 que es la usada por defecto en OpenLayers. La definición de la Extent es en coordenadas geográficas (-94.428,47.0169,-93.0557,47.9017) y non en EPSG:26915 NAD83/UTMzone15N (378107,5193120,510896,5320243) que es la proyección originaria de los datos.&lt;br /&gt;
&lt;br /&gt;
Además hay que notar como en la creación del objeto '''layer''' la direción del servidor y el listado de las capas coinciden con las que hemos creado antes.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            map = &amp;lt;span style='background-color:yellow'&amp;gt;new OpenLayers.Map( 'map',{&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxResolution: 'auto',} &amp;lt;/span&amp;gt;&lt;br /&gt;
 				&amp;lt;span style='background-color:yellow'&amp;gt;);&amp;lt;/span&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/&amp;lt;span style='background-color:yellow'&amp;gt;itasca-wms.map&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
                   {layers: '&amp;lt;span style='background-color:yellow'&amp;gt;ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp&amp;lt;/span&amp;gt;'} );&lt;br /&gt;
                    &lt;br /&gt;
 				);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WFS=&lt;br /&gt;
Para un función que normalmente requiere meterle mano al texto contenido en el ''mapfile'', gvSIG nos ayuda una vez más.&lt;br /&gt;
&lt;br /&gt;
El procedimiento es prácticamente igual al que seguimos para crear el servicio WMS.&lt;br /&gt;
&lt;br /&gt;
Se crea una nueva ''publicación'' desde la ventana del ''gestor de proyectos''. &lt;br /&gt;
&lt;br /&gt;
El asistente nos pregunta qué servidor utilizar y qué servicio crear. El servicio seleccionado por defecto es el WMS pero también podemos escoger el WFS, que es precisamente lo que vamos a hacer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-server.jpg|thumb|none|400px|Seleccionando el servidor y el servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En el paso siguiente tenemos que decir dónde queremos guardar el ''mapfile''.&lt;br /&gt;
En nuetro caso:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-test-wfs.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-mapfile.jpg|thumb|none|400px|Especificando la ubicación del ''mapfile'']]&lt;br /&gt;
&lt;br /&gt;
Ahora nos toca otra vez definir los metadatos para este recurso. Hay que poner atención sobre el hecho de que un servicio sin buena descripción no es un buen servicio.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-metadata.jpg|thumb|none|400px|Definiendo los metadatos del servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En la selección de capas vamos poniendo todos las capas que nuestra vista ofrece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-layers.jpg|thumb|none|400px|Añadiendo las capas al servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
Ahora sólo queda el último paso y gvSIG nos dirá si todo ha ido correctamente.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-end.jpg|thumb|none|400px|Mensaje de confirmación de que el servicio WFS se ha creado]]&lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio WFS==&lt;br /&gt;
&lt;br /&gt;
Para comprobar si todo ha ido bien podemos pedir el &amp;lt;tt&amp;gt;GetCapabilities&amp;lt;/tt&amp;gt; de nuestro servicio:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=C%3A%5Cms4w%5Capps%5Cmapserv-demo%5Citasca-test-wfs.map&amp;amp;request=getCapabilities&amp;amp;service=WFS&lt;br /&gt;
&lt;br /&gt;
Echad un vistazo un momento al código XML resultante de nuestra llamada. Los metadatos que describen el contenido deberían describir no sólo el juego de datos sino también cada capa por separado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Mapserver-wfs-getCapabilities.jpg|thumb|none|400px|El output del GetCapabilities]]&lt;br /&gt;
&lt;br /&gt;
=Autores=&lt;br /&gt;
* [[User:ominiverdi| Lorenzo Becchi]]&lt;br /&gt;
* [[User:jsanz| Jorge Gaspar Sanz Salinas]]&lt;br /&gt;
&lt;br /&gt;
=Licencia=&lt;br /&gt;
*la licencia por este articulo es: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/deed.es).&lt;br /&gt;
* esta licencia permite:&lt;br /&gt;
** copiar, distribuir y comunicar públicamente la obra&lt;br /&gt;
** hacer obras derivadas&lt;br /&gt;
*bajo estas condiciones:&lt;br /&gt;
** '''Reconocimiento'''. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).&lt;br /&gt;
** Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.&lt;br /&gt;
** Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor&lt;br /&gt;
** Nada en esta licencia menoscaba o restringe los derechos morales del autor.&lt;br /&gt;
&lt;br /&gt;
=Referencias=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Duración=&lt;br /&gt;
Por esta clase se evalúa una duración de X oras&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Gvsig-pubish-mapfile.jpg&amp;diff=38357</id>
		<title>File:Gvsig-pubish-mapfile.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Gvsig-pubish-mapfile.jpg&amp;diff=38357"/>
		<updated>2009-05-06T23:44:36Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: uploaded a new version of &amp;quot;Image:Gvsig-pubish-mapfile.jpg&amp;quot;: Reverted to version as of 23:34, 6 May 2009&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Gvsig-pubish-mapfile.jpg&amp;diff=38356</id>
		<title>File:Gvsig-pubish-mapfile.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Gvsig-pubish-mapfile.jpg&amp;diff=38356"/>
		<updated>2009-05-06T23:43:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: uploaded a new version of &amp;quot;Image:Gvsig-pubish-mapfile.jpg&amp;quot;: Reverted to version as of 11:24, 14 April 2009&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38355</id>
		<title>Crear servicios WMS y WFS con MS4W y gvSIG utilizando nuestro propio juego de datos</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38355"/>
		<updated>2009-05-06T23:40:15Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unos de los problemas principales en la publicación de datos geoespaciales en la web es la dificultad que lleva la configuración de los servidores de mapas.&lt;br /&gt;
&lt;br /&gt;
=Buscar los datos=&lt;br /&gt;
Si no se tiene un juego de datos propios se pueden utilizar algunos de los datos disponibles con licencia Libre que se encuentran en la red.&lt;br /&gt;
&lt;br /&gt;
==''MapServer Itasca Demo Application''==&lt;br /&gt;
Para comenzar necesitaremos el juego de datos libres ''Itasca''.&lt;br /&gt;
Tenemos una detallada explicación de dónde encontrarlo y cómo configurarlo en la lección [[Instalaci%C3%B3n_de_MS4W#Procedimiento_de_instalaci.C3.B3n_del_juego_de_datos_Itasca|Instalación de MS4W]].&lt;br /&gt;
&lt;br /&gt;
=Instalar la extensión de publicación para la web de gvSIG=&lt;br /&gt;
&lt;br /&gt;
Desde la [http://www.gvsig.gva.es/index.php?id=1803&amp;amp;L=0 página de Extensiones] de gvSIG podemos descargar la '''Extensión de publicación'''.&lt;br /&gt;
&lt;br /&gt;
La página de descarga es la siguiente:&lt;br /&gt;
&lt;br /&gt;
* http://www.gvsig.gva.es/index.php?id=2010&amp;amp;L=0&lt;br /&gt;
&lt;br /&gt;
El fichero en binario que instalamos para esta demostración es:&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/ficheros/Extensiones/gvsig-1_1_x-publishing-BN14-windows-i586.exe&lt;br /&gt;
&lt;br /&gt;
También está disponible un manual para la extensión:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/manuales/gvsig-1_1_x-publishing-man-v1-es.pdf.pdf&lt;br /&gt;
&lt;br /&gt;
El manual describe muy bien el proceso de instalación. Una vez instalado podemos lanzar gvSIG y proseguir con la lección.&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WMS=&lt;br /&gt;
&lt;br /&gt;
Antes que nada hay que crear una vista nueva con gvSIG y la llamaremos '''Itasca'''.&lt;br /&gt;
[[Image:Gvsig extension publicacion web shot1.png|thumb|none|400px|Crear una vista nueva con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Entre las propiedades de la vista hay que definir su proyección y nosotros vamos a escoger la proyección de nuestro juego de datos que, en el caso de Itasca, es ''EPSG:26915''. &lt;br /&gt;
[[Image:GvSig propriedades vista.jpg|thumb|none|400px|Definición de la proyección de nuestra vista]]&lt;br /&gt;
&lt;br /&gt;
Una vez creada la vista podemos añadir nuestros datos desde la carpeta:&lt;br /&gt;
 C:\MS4W\apps\mapserv-demo\data\&lt;br /&gt;
Iremos escogiendo las siguientes capas:&lt;br /&gt;
*&amp;lt;tt&amp;gt;ctyrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;dlgstln2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;lakespy2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;mcdrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gvSIG visualizará todos los ficheros dándole unos estilos por defecto.&lt;br /&gt;
[[Image:Gvsig itasca no style.jpg|thumb|none|400px|gvSIG visualizando los datos de Itasca]]&lt;br /&gt;
&lt;br /&gt;
Con el botón derecho sobre el nombre de la capa desde la leyenda es posible seleccionar las preferencias y definir un estilo personalizado para nuestras capas. En este caso hemos seleccionado la capa de los lagos y definido un estilo en intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-symbology-intervals.jpg|thumb|none|400px|Creando un estilo de visualización con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Una vez guardada la vista de gvSIG podemos volver a la ventana del ''Gestor de proyectos'' y seleccionar la herramienta de ''Publicación''. Se puede ver en la siguiente imagen como el estilo que hemos creado antes se aplica al mapa.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-publish.jpg|thumb|none|400px|Visualizando la herramienta de publicación y el mapa con el nuevo estilo de visualización]]&lt;br /&gt;
&lt;br /&gt;
Creando una nueva ''Publicación'' somos guiados paso a paso en el proceso de publicación en la web mediante un asistente.&lt;br /&gt;
El primer paso es seleccionar el servidor que tenemos disponible. En nuestro caso es un servidor ''UMN Mapserver'' versión 5.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-server.jpg|thumb|none|400px|Definiendo la ubicación de UMN Mapserver]]&lt;br /&gt;
&lt;br /&gt;
En segundo lugar hay que definir el lugar en el que guardar el fichero de configuración (''mapfile''). En nuestro caso un lugar útil puede ser:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-wms.map&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otra pregunta importante cuando se configure un servicio en la red es a propósito de los metadatos WMS.&lt;br /&gt;
&lt;br /&gt;
OGC define los metadatos de los servicios para que quien utilice nuestro servidor tenga una idea adecuada de los datos que se acercan a descargar. Es importante por eso describir bien los metadatos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-metadata.jpg|thumb|none|400px|Definiendo los Metadatos del servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
Un paso importante es escoger las capas, disponibles en nuestra ''vista'', que vamos a querer visualizar. Seleccionamos las 4 que hemos cargado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-layers.jpg|thumb|none|400px|Seleccionando las capas a publicar]]&lt;br /&gt;
&lt;br /&gt;
Ya estamos acabando, pulsando el botón ''publicar'', esperamos el mensaje de confirmación.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-end.jpg|thumb|none|400px|El ''mapfile'' ha sido guardado en el lugar requerido y el servicio WMS está disponible]]&lt;br /&gt;
&lt;br /&gt;
El ultimo paso que tenemos que dar es editar a mano el Mapfile y añadir la proyección geografica  EPSG:4326 (LAT/LONG) a las ofrecida por nuestro servidor WMS.&lt;br /&gt;
En la linea 25 de nuestro Mafile cambiamos:&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915&amp;quot;&lt;br /&gt;
con&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915   EPSG:4326&amp;quot;&lt;br /&gt;
Este cambio hace que Mapserver pueda servir nuestros datos en dos diferente sistemas de proyección. Es el Mapserver mismo que se encarga de re-proyectar los datos. &lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio creado==&lt;br /&gt;
&lt;br /&gt;
Como en la lección [[Openlayers: configuración mínima con biblioteca en remoto]] hemos visto cómo crear una pagina web que enseñe nuestros contenidos ahora podemos hacerlo con nuestro nuevo servicio WMS.&lt;br /&gt;
&lt;br /&gt;
===Código de ejemplo===&lt;br /&gt;
para crear la página web necesitamos crear un nuevo fichero con un editor de texto sencillo.&lt;br /&gt;
este fichero lo llamaremos:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\ol-itasca-wms.html&lt;br /&gt;
&lt;br /&gt;
luego hay que poner el siguiente texto en ella:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 512px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&lt;br /&gt;
 					maxResolution: 'auto',} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
                    &lt;br /&gt;
                    &lt;br /&gt;
            map.addLayers([layer]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          El uso básico de OpenLayers con una capa WMS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         más texto aquí&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comprobar la página web con el mapa===&lt;br /&gt;
Una vez guardada la página web con el código anterior podemos comprobar con nuestro navegador web (p.ej. Mozilla Firefox, Internet Explorer, etc.) si la página responde como esperamos:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol-itasca-test.html&lt;br /&gt;
&lt;br /&gt;
Este es el resultado:&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers-show-ows-from-gvsig-mapserver.jpg|thumb|none|400px|Publicación de nuestro servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
===Todo lo que hay que notar en nuestro código===&lt;br /&gt;
&lt;br /&gt;
El código que hemos utilizado es sencillo pero hay que estar muy atentos a que lo que escriba sea exacto y tenga sentido.&lt;br /&gt;
&lt;br /&gt;
====El código JavaScript personalizado====&lt;br /&gt;
&lt;br /&gt;
Podemos notar como la creación del objeto '''map''' es muy sencilla porque no tenemos que definir la unidad de medida ni la proyección porque nuestro servicio es en EPSG:4326 que es la usada por defecto en OpenLayers. La definición de la Extent es en coordenadas geográficas (-94.428,47.0169,-93.0557,47.9017) y non en EPSG:26915 NAD83/UTMzone15N (378107,5193120,510896,5320243) que es la proyección originaria de los datos.&lt;br /&gt;
&lt;br /&gt;
Además hay que notar como en la creación del objeto '''layer''' la direción del servidor y el listado de las capas coinciden con las que hemos creado antes.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            map = &amp;lt;span style='background-color:yellow'&amp;gt;new OpenLayers.Map( 'map',{&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxResolution: 'auto',} &amp;lt;/span&amp;gt;&lt;br /&gt;
 				&amp;lt;span style='background-color:yellow'&amp;gt;);&amp;lt;/span&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/&amp;lt;span style='background-color:yellow'&amp;gt;itasca-wms.map&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
                   {layers: '&amp;lt;span style='background-color:yellow'&amp;gt;ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp&amp;lt;/span&amp;gt;'} );&lt;br /&gt;
                    &lt;br /&gt;
 				);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WFS=&lt;br /&gt;
Para un función que normalmente requiere meterle mano al texto contenido en el ''mapfile'', gvSIG nos ayuda una vez más.&lt;br /&gt;
&lt;br /&gt;
El procedimiento es prácticamente igual al que seguimos para crear el servicio WMS.&lt;br /&gt;
&lt;br /&gt;
Se crea una nueva ''publicación'' desde la ventana del ''gestor de proyectos''. &lt;br /&gt;
&lt;br /&gt;
El asistente nos pregunta qué servidor utilizar y qué servicio crear. El servicio seleccionado por defecto es el WMS pero también podemos escoger el WFS, que es precisamente lo que vamos a hacer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-server.jpg|thumb|none|400px|Seleccionando el servidor y el servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En el paso siguiente tenemos que decir dónde queremos guardar el ''mapfile''.&lt;br /&gt;
En nuetro caso:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-test-wfs.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-mapfile.jpg|thumb|none|400px|Especificando la ubicación del ''mapfile'']]&lt;br /&gt;
&lt;br /&gt;
Ahora nos toca otra vez definir los metadatos para este recurso. Hay que poner atención sobre el hecho de que un servicio sin buena descripción no es un buen servicio.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-metadata.jpg|thumb|none|400px|Definiendo los metadatos del servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En la selección de capas vamos poniendo todos las capas que nuestra vista ofrece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-layers.jpg|thumb|none|400px|Añadiendo las capas al servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
Ahora sólo queda el último paso y gvSIG nos dirá si todo ha ido correctamente.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-end.jpg|thumb|none|400px|Mensaje de confirmación de que el servicio WFS se ha creado]]&lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio WFS==&lt;br /&gt;
&lt;br /&gt;
Para comprobar si todo ha ido bien podemos pedir el &amp;lt;tt&amp;gt;GetCapabilities&amp;lt;/tt&amp;gt; de nuestro servicio:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=C%3A%5Cms4w%5Capps%5Cmapserv-demo%5Citasca-test-wfs.map&amp;amp;request=getCapabilities&amp;amp;service=WFS&lt;br /&gt;
&lt;br /&gt;
Echad un vistazo un momento al código XML resultante de nuestra llamada. Los metadatos que describen el contenido deberían describir no sólo el juego de datos sino también cada capa por separado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Mapserver-wfs-getCapabilities.jpg|thumb|none|400px|El output del GetCapabilities]]&lt;br /&gt;
&lt;br /&gt;
=Autores=&lt;br /&gt;
* [[User:ominiverdi| Lorenzo Becchi]]&lt;br /&gt;
* [[User:jsanz| Jorge Gaspar Sanz Salinas]]&lt;br /&gt;
&lt;br /&gt;
=Licencia=&lt;br /&gt;
*la licencia por este articulo es: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/deed.es).&lt;br /&gt;
* esta licencia permite:&lt;br /&gt;
** copiar, distribuir y comunicar públicamente la obra&lt;br /&gt;
** hacer obras derivadas&lt;br /&gt;
*bajo estas condiciones:&lt;br /&gt;
** '''Reconocimiento'''. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).&lt;br /&gt;
** Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.&lt;br /&gt;
** Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor&lt;br /&gt;
** Nada en esta licencia menoscaba o restringe los derechos morales del autor.&lt;br /&gt;
&lt;br /&gt;
=Referencias=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Duración=&lt;br /&gt;
Por esta clase se evalúa una duración de X oras&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38354</id>
		<title>Crear servicios WMS y WFS con MS4W y gvSIG utilizando nuestro propio juego de datos</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Crear_servicios_WMS_y_WFS_con_MS4W_y_gvSIG_utilizando_nuestro_propio_juego_de_datos&amp;diff=38354"/>
		<updated>2009-05-06T23:39:19Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unos de los problemas principales en la publicación de datos geoespaciales en la web es la dificultad que lleva la configuración de los servidores de mapas.&lt;br /&gt;
&lt;br /&gt;
=Buscar los datos=&lt;br /&gt;
Si no se tiene un juego de datos propios se pueden utilizar algunos de los datos disponibles con licencia Libre que se encuentran en la red.&lt;br /&gt;
&lt;br /&gt;
==''MapServer Itasca Demo Application''==&lt;br /&gt;
Para comenzar necesitaremos el juego de datos libres ''Itasca''.&lt;br /&gt;
Tenemos una detallada explicación de dónde encontrarlo y cómo configurarlo en la lección [[Instalaci%C3%B3n_de_MS4W#Procedimiento_de_instalaci.C3.B3n_del_juego_de_datos_Itasca|Instalación de MS4W]].&lt;br /&gt;
&lt;br /&gt;
=Instalar la extensión de publicación para la web de gvSIG=&lt;br /&gt;
&lt;br /&gt;
Desde la [http://www.gvsig.gva.es/index.php?id=1803&amp;amp;L=0 página de Extensiones] de gvSIG podemos descargar la '''Extensión de publicación'''.&lt;br /&gt;
&lt;br /&gt;
La página de descarga es la siguiente:&lt;br /&gt;
&lt;br /&gt;
* http://www.gvsig.gva.es/index.php?id=2010&amp;amp;L=0&lt;br /&gt;
&lt;br /&gt;
El fichero en binario que instalamos para esta demostración es:&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/ficheros/Extensiones/gvsig-1_1_x-publishing-BN14-windows-i586.exe&lt;br /&gt;
&lt;br /&gt;
También está disponible un manual para la extensión:&lt;br /&gt;
&lt;br /&gt;
* http://downloads.gvsig.org/gva/descargas/manuales/gvsig-1_1_x-publishing-man-v1-es.pdf.pdf&lt;br /&gt;
&lt;br /&gt;
El manual describe muy bien el proceso de instalación. Una vez instalado podemos lanzar gvSIG y proseguir con la lección.&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WMS=&lt;br /&gt;
&lt;br /&gt;
Antes que nada hay que crear una vista nueva con gvSIG y la llamaremos '''Itasca'''.&lt;br /&gt;
[[Image:Gvsig extension publicacion web shot1.png|thumb|none|400px|Crear una vista nueva con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Entre las propiedades de la vista hay que definir su proyección y nosotros vamos a escoger la proyección de nuestro juego de datos que, en el caso de Itasca, es ''EPSG:26915''. &lt;br /&gt;
[[Image:GvSig propriedades vista.jpg|thumb|none|400px|Definición de la proyección de nuestra vista]]&lt;br /&gt;
&lt;br /&gt;
Una vez creada la vista podemos añadir nuestros datos desde la carpeta:&lt;br /&gt;
 C:\MS4W\apps\mapserv-demo\data\&lt;br /&gt;
Iremos escogiendo las siguientes capas:&lt;br /&gt;
*&amp;lt;tt&amp;gt;ctyrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;dlgstln2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;lakespy2.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
*&amp;lt;tt&amp;gt;mcdrdln3.shp&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gvSIG visualizará todos los ficheros dándole unos estilos por defecto.&lt;br /&gt;
[[Image:Gvsig itasca no style.jpg|thumb|none|400px|gvSIG visualizando los datos de Itasca]]&lt;br /&gt;
&lt;br /&gt;
Con el botón derecho sobre el nombre de la capa desde la leyenda es posible seleccionar las preferencias y definir un estilo personalizado para nuestras capas. En este caso hemos seleccionado la capa de los lagos y definido un estilo en intervalos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-symbology-intervals.jpg|thumb|none|400px|Creando un estilo de visualización con gvSIG]]&lt;br /&gt;
&lt;br /&gt;
Una vez guardada la vista de gvSIG podemos volver a la ventana del ''Gestor de proyectos'' y seleccionar la herramienta de ''Publicación''. Se puede ver en la siguiente imagen como el estilo que hemos creado antes se aplica al mapa.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-itasca-publish.jpg|thumb|none|400px|Visualizando la herramienta de publicación y el mapa con el nuevo estilo de visualización]]&lt;br /&gt;
&lt;br /&gt;
Creando una nueva ''Publicación'' somos guiados paso a paso en el proceso de publicación en la web mediante un asistente.&lt;br /&gt;
El primer paso es seleccionar el servidor que tenemos disponible. En nuestro caso es un servidor ''UMN Mapserver'' versión 5.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-server.jpg|thumb|none|400px|Definiendo la ubicación de UMN Mapserver]]&lt;br /&gt;
&lt;br /&gt;
En segundo lugar hay que definir el lugar en el que guardar el fichero de configuración (''mapfile''). En nuestro caso un lugar útil puede ser:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-wms.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-pubish-mapfile.jpg|thumb|none|400px|Definiendo la ubicación del ''mapfile'' para nuestro servicio]]&lt;br /&gt;
&lt;br /&gt;
Otra pregunta importante cuando se configure un servicio en la red es a propósito de los metadatos WMS.&lt;br /&gt;
&lt;br /&gt;
OGC define los metadatos de los servicios para que quien utilice nuestro servidor tenga una idea adecuada de los datos que se acercan a descargar. Es importante por eso describir bien los metadatos.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-metadata.jpg|thumb|none|400px|Definiendo los Metadatos del servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
Un paso importante es escoger las capas, disponibles en nuestra ''vista'', que vamos a querer visualizar. Seleccionamos las 4 que hemos cargado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-layers.jpg|thumb|none|400px|Seleccionando las capas a publicar]]&lt;br /&gt;
&lt;br /&gt;
Ya estamos acabando, pulsando el botón ''publicar'', esperamos el mensaje de confirmación.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-end.jpg|thumb|none|400px|El ''mapfile'' ha sido guardado en el lugar requerido y el servicio WMS está disponible]]&lt;br /&gt;
&lt;br /&gt;
El ultimo paso que tenemos que dar es editar a mano el Mapfile y añadir la proyección geografica  EPSG:4326 (LAT/LONG) a las ofrecida por nuestro servidor WMS.&lt;br /&gt;
En la linea 25 de nuestro Mafile cambiamos:&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915&amp;quot;&lt;br /&gt;
con&lt;br /&gt;
           &amp;quot;wms_srs&amp;quot; &amp;quot; EPSG:26915   EPSG:4326&amp;quot;&lt;br /&gt;
Este cambio hace que Mapserver pueda servir nuestros datos en dos diferente sistemas de proyección. Es el Mapserver mismo que se encarga de re-proyectar los datos. &lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio creado==&lt;br /&gt;
&lt;br /&gt;
Como en la lección [[Openlayers: configuración mínima con biblioteca en remoto]] hemos visto cómo crear una pagina web que enseñe nuestros contenidos ahora podemos hacerlo con nuestro nuevo servicio WMS.&lt;br /&gt;
&lt;br /&gt;
===Código de ejemplo===&lt;br /&gt;
para crear la página web necesitamos crear un nuevo fichero con un editor de texto sencillo.&lt;br /&gt;
este fichero lo llamaremos:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\ol-itasca-wms.html&lt;br /&gt;
&lt;br /&gt;
luego hay que poner el siguiente texto en ella:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        #map {&lt;br /&gt;
            width: 512px;&lt;br /&gt;
            height: 512px;&lt;br /&gt;
            border: 1px solid black;&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/style&amp;gt;&lt;br /&gt;
    &amp;lt;script src=&amp;quot;http://www.openlayers.org/api/OpenLayers.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        var map, layer;&lt;br /&gt;
 &lt;br /&gt;
        function init(){&lt;br /&gt;
            map = new OpenLayers.Map( 'map',{&lt;br /&gt;
 					maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&lt;br /&gt;
 					maxResolution: 'auto',} &lt;br /&gt;
 				);&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost:9000/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/itasca-wms.map&amp;quot;, {layers: 'ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp'} );&lt;br /&gt;
                    &lt;br /&gt;
                    &lt;br /&gt;
            map.addLayers([layer]);&lt;br /&gt;
 &lt;br /&gt;
            map.zoomToMaxExtent();&lt;br /&gt;
        }&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body onload=&amp;quot;init()&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
         &amp;lt;b&amp;gt;Ejemplo de WMS&amp;lt;/b&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div&amp;gt;&lt;br /&gt;
          El uso básico de OpenLayers con una capa WMS&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;map&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
     &amp;lt;div id=&amp;quot;docs&amp;quot;&amp;gt;&lt;br /&gt;
         más texto aquí&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Comprobar la página web con el mapa===&lt;br /&gt;
Una vez guardada la página web con el código anterior podemos comprobar con nuestro navegador web (p.ej. Mozilla Firefox, Internet Explorer, etc.) si la página responde como esperamos:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/mapserv-demo/ol-itasca-test.html&lt;br /&gt;
&lt;br /&gt;
Este es el resultado:&lt;br /&gt;
&lt;br /&gt;
[[Image:Openlayers-show-ows-from-gvsig-mapserver.jpg|thumb|none|400px|Publicación de nuestro servicio WMS]]&lt;br /&gt;
&lt;br /&gt;
===Todo lo que hay que notar en nuestro código===&lt;br /&gt;
&lt;br /&gt;
El código que hemos utilizado es sencillo pero hay que estar muy atentos a que lo que escriba sea exacto y tenga sentido.&lt;br /&gt;
&lt;br /&gt;
====El código JavaScript personalizado====&lt;br /&gt;
&lt;br /&gt;
Podemos notar como la creación del objeto '''map''' es muy sencilla porque no tenemos que definir la unidad de medida ni la proyección porque nuestro servicio es en EPSG:4326 que es la usada por defecto en OpenLayers. La definición de la Extent es en coordenadas geográficas (-94.428,47.0169,-93.0557,47.9017) y non en EPSG:26915 NAD83/UTMzone15N (378107,5193120,510896,5320243) que es la proyección originaria de los datos.&lt;br /&gt;
&lt;br /&gt;
Además hay que notar como en la creación del objeto '''layer''' la direción del servidor y el listado de las capas coinciden con las que hemos creado antes.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            map = &amp;lt;span style='background-color:yellow'&amp;gt;new OpenLayers.Map( 'map',{&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxExtent: new OpenLayers.Bounds(-94.428,47.0169,-93.0557,47.9017),&amp;lt;/span&amp;gt;&lt;br /&gt;
 					&amp;lt;span style='background-color:yellow'&amp;gt;maxResolution: 'auto',} &amp;lt;/span&amp;gt;&lt;br /&gt;
 				&amp;lt;span style='background-color:yellow'&amp;gt;);&amp;lt;/span&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
            layer = new OpenLayers.Layer.WMS( &amp;quot;OpenLayers WMS&amp;quot;,&lt;br /&gt;
                    &amp;quot;http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/mapserv-demo/&amp;lt;span style='background-color:yellow'&amp;gt;itasca-wms.map&amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
                   {layers: '&amp;lt;span style='background-color:yellow'&amp;gt;ctyrdln3.shp,dlgstln2.shp,lakespy2.shp,mcdrdln3.shp&amp;lt;/span&amp;gt;'} );&lt;br /&gt;
                    &lt;br /&gt;
 				);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Crear el servicio WFS=&lt;br /&gt;
Para un función que normalmente requiere meterle mano al texto contenido en el ''mapfile'', gvSIG nos ayuda una vez más.&lt;br /&gt;
&lt;br /&gt;
El procedimiento es prácticamente igual al que seguimos para crear el servicio WMS.&lt;br /&gt;
&lt;br /&gt;
Se crea una nueva ''publicación'' desde la ventana del ''gestor de proyectos''. &lt;br /&gt;
&lt;br /&gt;
El asistente nos pregunta qué servidor utilizar y qué servicio crear. El servicio seleccionado por defecto es el WMS pero también podemos escoger el WFS, que es precisamente lo que vamos a hacer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-server.jpg|thumb|none|400px|Seleccionando el servidor y el servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En el paso siguiente tenemos que decir dónde queremos guardar el ''mapfile''.&lt;br /&gt;
En nuetro caso:&lt;br /&gt;
&lt;br /&gt;
 C:\ms4w\apps\mapserv-demo\itasca-test-wfs.map&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-mapfile.jpg|thumb|none|400px|Especificando la ubicación del ''mapfile'']]&lt;br /&gt;
&lt;br /&gt;
Ahora nos toca otra vez definir los metadatos para este recurso. Hay que poner atención sobre el hecho de que un servicio sin buena descripción no es un buen servicio.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-metadata.jpg|thumb|none|400px|Definiendo los metadatos del servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
En la selección de capas vamos poniendo todos las capas que nuestra vista ofrece.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-layers.jpg|thumb|none|400px|Añadiendo las capas al servicio WFS]]&lt;br /&gt;
&lt;br /&gt;
Ahora sólo queda el último paso y gvSIG nos dirá si todo ha ido correctamente.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gvsig-publish-wfs-end.jpg|thumb|none|400px|Mensaje de confirmación de que el servicio WFS se ha creado]]&lt;br /&gt;
&lt;br /&gt;
==Comprobar el servicio WFS==&lt;br /&gt;
&lt;br /&gt;
Para comprobar si todo ha ido bien podemos pedir el &amp;lt;tt&amp;gt;GetCapabilities&amp;lt;/tt&amp;gt; de nuestro servicio:&lt;br /&gt;
&lt;br /&gt;
* http://localhost:9000/cgi-bin/mapserv.exe?map=C%3A%5Cms4w%5Capps%5Cmapserv-demo%5Citasca-test-wfs.map&amp;amp;request=getCapabilities&amp;amp;service=WFS&lt;br /&gt;
&lt;br /&gt;
Echad un vistazo un momento al código XML resultante de nuestra llamada. Los metadatos que describen el contenido deberían describir no sólo el juego de datos sino también cada capa por separado.&lt;br /&gt;
&lt;br /&gt;
[[Image:Mapserver-wfs-getCapabilities.jpg|thumb|none|400px|El output del GetCapabilities]]&lt;br /&gt;
&lt;br /&gt;
=Autores=&lt;br /&gt;
* [[User:ominiverdi| Lorenzo Becchi]]&lt;br /&gt;
* [[User:jsanz| Jorge Gaspar Sanz Salinas]]&lt;br /&gt;
&lt;br /&gt;
=Licencia=&lt;br /&gt;
*la licencia por este articulo es: Creative Commons Attribution 3.0 License (http://creativecommons.org/licenses/by/3.0/deed.es).&lt;br /&gt;
* esta licencia permite:&lt;br /&gt;
** copiar, distribuir y comunicar públicamente la obra&lt;br /&gt;
** hacer obras derivadas&lt;br /&gt;
*bajo estas condiciones:&lt;br /&gt;
** '''Reconocimiento'''. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).&lt;br /&gt;
** Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.&lt;br /&gt;
** Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor&lt;br /&gt;
** Nada en esta licencia menoscaba o restringe los derechos morales del autor.&lt;br /&gt;
&lt;br /&gt;
=Referencias=&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Duración=&lt;br /&gt;
Por esta clase se evalúa una duración de X oras&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=File:Gvsig-pubish-mapfile.jpg&amp;diff=38353</id>
		<title>File:Gvsig-pubish-mapfile.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=File:Gvsig-pubish-mapfile.jpg&amp;diff=38353"/>
		<updated>2009-05-06T23:34:35Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Corral20: uploaded a new version of &amp;quot;Image:Gvsig-pubish-mapfile.jpg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category:Education]]&lt;br /&gt;
[[Category:Cursos]]&lt;/div&gt;</summary>
		<author><name>Wiki-Corral20</name></author>
	</entry>
</feed>