Saltar a contenido

Crear mapas con GeoNode

Introducción al Servicio de Mapas Web

Un Servicio de Mapas Web proporciona:

  • Un conjunto de conjuntos de datos (cada uno en su propia proyección de mapa)
  • Uno o más estilos nombrados por conjunto de datos (al menos uno)
  • La capacidad de solicitar cualquier lista de conjuntos de datos con sus estilos para construir un mapa
  • Un conjunto de proyecciones objetivo en las que se puede componer el mapa
  • La posibilidad de solicitar cualquier tamaño de mapa y denominador de escala
  • La capacidad opcional de consultar el mapa (herramienta de información, “¿qué hay aquí?”)

image

La flexibilidad de este modelo permite a los clientes construir sus propios mapas seleccionando solo los conjuntos de datos de interés, integrando capas de mapa de diferentes servidores (suponiendo que haya al menos una proyección objetivo común entre los servidores) y utilizando datos locales también si es necesario.

Esta introducción muestra la versión del protocolo WMS 1.1, ya que es más fácil de explicar en comparación con la versión más nueva 1.3, en la que se debe utilizar un orden de ejes diferente dependiendo del sistema de referencia de coordenadas solicitado. Los conceptos principales son muy similares, al igual que las solicitudes.

GetCapabilities

Como la mayoría de los protocolos de OGC, WMS expone una solicitud GetCapabilities. Para ver el contenido completo del documento de capacidades de GeoServer WMS 1.3 local, siga este enlace:

http://localhost/geoserver/ows?service=wms&version=1.3.0&request=GetCapabilities

El resultado es un documento XML muy grande, destinado a ser analizado por una computadora; aquí solo veremos algunos aspectos destacados.

La sección del servicio

Esta sección proporciona una forma de describir el contenido del servicio (título, resumen) y puntos de contacto que se pueden utilizar para consultar sobre problemas informados, el servicio y el enlace. La información de contacto proviene de la página de configuración homónima en el menú de Información de contacto de la interfaz de administración de GeoServer.

<Service>
  <Name>WMS</Name>
  <Title>GeoNode Local GeoServer</Title>
  <Abstract>Esta es una descripción de su Servidor de Mapas Web.</Abstract>
  <KeywordList>
    <Keyword>WFS</Keyword>
    <Keyword>WMS</Keyword>
    <Keyword>GEOSERVER</Keyword>
  </KeywordList>
  <OnlineResource xlink:type="simple" xlink:href="http://geoserver.sourceforge.net/html/index.php"/>
  <ContactInformation>
    <ContactPersonPrimary>
      <ContactPerson/>
      <ContactOrganization/>
    </ContactPersonPrimary>
    <ContactPosition/>
    <ContactAddress>
      <AddressType/>
      <Address/>
      <City/>
      <StateOrProvince/>
      <PostCode/>
      <Country/>
    </ContactAddress>
    <ContactVoiceTelephone/>
    <ContactFacsimileTelephone/>
    <ContactElectronicMailAddress/>
  </ContactInformation>
  <Fees>NINGUNA</Fees>
  <AccessConstraints>NINGUNO</AccessConstraints>
</Service>

La sección de capacidades

Esta sección informa sobre qué solicitudes puede manejar el servidor y algo de información sobre las solicitudes, como los formatos de salida.

¿Sabías que:

  • No todas las solicitudes son obligatorias; solo GetCapability y GetMap lo son, GetFeatureInfo no
  • Solo se requiere uno entre los formatos de salida PNG, JPEG y GIF para GetMap, pero mira cuántos admite GeoServer
<Capability>
    <Request>
      <GetCapabilities>
        <Format>text/xml</Format>
        <DCPType>
          <HTTP>
            <Get>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Get>
            <Post>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Post>
          </HTTP>
        </DCPType>
      </GetCapabilities>
      <GetMap>
        <Format>image/png</Format>
        <Format>application/atom+xml</Format>
        <Format>application/json;type=utfgrid</Format>
        <Format>application/pdf</Format>
        <Format>application/rss+xml</Format>
        <Format>application/vnd.google-earth.kml+xml</Format>
        <Format>application/vnd.google-earth.kml+xml;mode=networklink</Format>
        <Format>application/vnd.google-earth.kmz</Format>
        <Format>image/geotiff</Format>
        <Format>image/geotiff8</Format>
        <Format>image/gif</Format>
        <Format>image/jpeg</Format>
        <Format>image/png; mode=8bit</Format>
        <Format>image/svg+xml</Format>
        <Format>image/tiff</Format>
        <Format>image/tiff8</Format>
        <Format>image/vnd.jpeg-png</Format>
        <Format>image/vnd.jpeg-png8</Format>
        <Format>text/html; subtype=openlayers</Format>
        <Format>text/html; subtype=openlayers2</Format>
        <Format>text/html; subtype=openlayers3</Format>
        <DCPType>
          <HTTP>
            <Get>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Get>
          </HTTP>
        </DCPType>
      </GetMap>
      <GetFeatureInfo>
        <Format>text/plain</Format>
        <Format>application/vnd.ogc.gml</Format>
        <Format>text/xml</Format>
        <Format>application/vnd.ogc.gml/3.1.1</Format>
        <Format>text/xml; subtype=gml/3.1.1</Format>
        <Format>text/html</Format>
        <Format>application/json</Format>
        <DCPType>
          <HTTP>
            <Get>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Get>
          </HTTP>
        </DCPType>
      </GetFeatureInfo>
    </Request>
  ...

La sección de Contenidos

Esta sección en WMS contiene un árbol de conjuntos de datos.

El árbol tiene varias consecuencias:

  • Es una forma de organizar datos por temas
  • Es una forma de agrupar conjuntos de datos. Solicitar un conjunto de datos hace que el servidor devuelva todos sus conjuntos de datos secundarios en el orden que están definidos
  • Permite la herencia. Las propiedades del conjunto de datos principal son heredadas por todos los conjuntos de datos secundarios

La sección de contenidos comienza con un conjunto de datos raíz que se puede usar para obtener todos los conjuntos de datos de un solo golpe y que enumera todas las proyecciones objetivo a las que se puede reproyectar un mapa. Por defecto, GeoServer enumera todas las encontradas en la base de datos EPSG, y se puede configurar estableciendo la Lista SRS limitada en la página de administración de WMS de GeoServer:

<Service>
  <Name>WMS</Name>
  <Title>GeoNode Local GeoServer</Title>
  <Abstract>This is a description of your Web Map Server.</Abstract>
  <KeywordList>
    <Keyword>WFS</Keyword>
    <Keyword>WMS</Keyword>
    <Keyword>GEOSERVER</Keyword>
  </KeywordList>
  <OnlineResource xlink:type="simple" xlink:href="http://geoserver.sourceforge.net/html/index.php"/>
  <ContactInformation>
    <ContactPersonPrimary>
      <ContactPerson/>
      <ContactOrganization/>
    </ContactPersonPrimary>
    <ContactPosition/>
    <ContactAddress>
      <AddressType/>
      <Address/>
      <City/>
      <StateOrProvince/>
      <PostCode/>
      <Country/>
    </ContactAddress>
    <ContactVoiceTelephone/>
    <ContactFacsimileTelephone/>
    <ContactElectronicMailAddress/>
  </ContactInformation>
  <Fees>NONE</Fees>
  <AccessConstraints>NONE</AccessConstraints>
</Service>

La sección de capacidades

Esta sección informa sobre qué solicitudes puede manejar el servidor y algunos detalles sobre las solicitudes, como los formatos de salida.

¿Sabías que:

  • No todas las solicitudes son obligatorias; solo GetCapability y GetMap lo son, GetFeatureInfo no lo es.
  • Solo se requiere uno entre los formatos de salida PNG, JPEG y GIF para GetMap, pero mira cuántos formatos soporta GeoServer.
<Capability>
    <Request>
      <GetCapabilities>
        <Format>text/xml</Format>
        <DCPType>
          <HTTP>
            <Get>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Get>
            <Post>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Post>
          </HTTP>
        </DCPType>
      </GetCapabilities>
      <GetMap>
        <Format>image/png</Format>
        <Format>application/atom+xml</Format>
        <Format>application/json;type=utfgrid</Format>
        <Format>application/pdf</Format>
        <Format>application/rss+xml</Format>
        <Format>application/vnd.google-earth.kml+xml</Format>
        <Format>application/vnd.google-earth.kml+xml;mode=networklink</Format>
        <Format>application/vnd.google-earth.kmz</Format>
        <Format>image/geotiff</Format>
        <Format>image/geotiff8</Format>
        <Format>image/gif</Format>
        <Format>image/jpeg</Format>
        <Format>image/png; mode=8bit</Format>
        <Format>image/svg+xml</Format>
        <Format>image/tiff</Format>
        <Format>image/tiff8</Format>
        <Format>image/vnd.jpeg-png</Format>
        <Format>image/vnd.jpeg-png8</Format>
        <Format>text/html; subtype=openlayers</Format>
        <Format>text/html; subtype=openlayers2</Format>
        <Format>text/html; subtype=openlayers3</Format>
        <DCPType>
          <HTTP>
            <Get>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Get>
          </HTTP>
        </DCPType>
      </GetMap>
      <GetFeatureInfo>
        <Format>text/plain</Format>
        <Format>application/vnd.ogc.gml</Format>
        <Format>text/xml</Format>
        <Format>application/vnd.ogc.gml/3.1.1</Format>
        <Format>text/xml; subtype=gml/3.1.1</Format>
        <Format>text/html</Format>
        <Format>application/json</Format>
        <DCPType>
          <HTTP>
            <Get>
              <OnlineResource xlink:type="simple" xlink:href="http://localhost/geoserver/ows?SERVICE=WMS&amp;"/>
            </Get>
          </HTTP>
        </DCPType>
      </GetFeatureInfo>
    </Request>
  ...

La sección de Contenidos

Esta sección en WMS contiene un árbol de conjuntos de datos.

El árbol tiene varias consecuencias:

  • Es una forma de organizar datos por temas.
  • Es una manera de agrupar conjuntos de datos. Solicitar un conjunto de datos hace que el servidor devuelva todos sus conjuntos de datos secundarios en el orden en que están definidos.
  • Permite la herencia. Las propiedades del conjunto de datos padre son heredadas por todos los conjuntos de datos secundarios.

La sección de contenidos comienza con un conjunto de datos raíz que se puede usar para obtener todos los conjuntos de datos de un solo golpe y que enumera todas las proyecciones de destino a las que un mapa puede reproyectarse. Por defecto, GeoServer enumera todas las que se encuentran en la base de datos EPSG, y se puede configurar ajustando la Lista limitada de SRS en la página de administración de WMS de GeoServer:

<Layer>
  <Title>GeoNode Local GeoServer</Title>
  <Abstract>Esta es una descripción de su Servidor de Mapas Web.</Abstract>
  <!--Lista limitada de proyecciones EPSG:-->
  <CRS>EPSG:4326</CRS>
  <CRS>EPSG:3785</CRS>
  <CRS>EPSG:3857</CRS>
  <CRS>EPSG:900913</CRS>
  <CRS>EPSG:32647</CRS>
  <CRS>EPSG:32736</CRS>
  <CRS>CRS:84</CRS>
  <EX_GeographicBoundingBox>
    <westBoundLongitude>-117.36526677636073</westBoundLongitude>
    <eastBoundLongitude>-105.00013888888888</eastBoundLongitude>
    <southBoundLatitude>32.534227762958466</southBoundLatitude>
    <northBoundLatitude>40.30013888888889</northBoundLatitude>
  </EX_GeographicBoundingBox>
  <BoundingBox CRS="CRS:84" minx="-117.36526677636073" miny="32.534227762958466" maxx="-105.00013888888888" maxy="40.30013888888889"/>
  <BoundingBox CRS="EPSG:4326" minx="32.534227762958466" miny="-117.36526677636073" maxx="40.30013888888889" maxy="-105.00013888888888"/>
  <BoundingBox CRS="EPSG:3785" minx="-1.3065041734361183E7" miny="3810657.25465308" maxx="-1.1688561994334111E7" maxy="4881998.79461361"/>
  <BoundingBox CRS="EPSG:3857" minx="-1.3065041734361183E7" miny="3833642.429924806" maxx="-1.1688561994334111E7" maxy="4909653.984025123"/>
  <BoundingBox CRS="EPSG:900913" minx="-1.3065041734361183E7" miny="3833642.429924806" maxx="-1.1688561994334111E7" maxy="4909653.984025123"/>
  <BoundingBox CRS="EPSG:32647" minx="-3.951956507952588E7" miny="1.9702860254844192E7" maxx="-9842223.141078195" maxy="8.402118175739984E7"/>
  <BoundingBox CRS="EPSG:32736" minx="5073132.765295756" miny="3.0483944181415446E7" maxx="2.9354901643614803E7" maxy="7.986815078653288E7"/>
  ...

Después de la lista de sistemas de referencia de coordenadas, los conjuntos de datos reales aparecen con su propia caja delimitadora, estilos y referencia de leyenda:

<Layer queryable="1" opaque="0">
  <Name>geonode:Air_Runways</Name>
  <Title>Air_Runways</Title>
  <Abstract>Runways de Aeropuerto</Abstract>
  <KeywordList>
    <Keyword>características</Keyword>
    <Keyword>Air_Runways</Keyword>
    <Keyword>Runway</Keyword>
    <Keyword>Aeropuerto</Keyword>
    <Keyword>Aeropuertos</Keyword>
    <Keyword>Runways</Keyword>
    <Keyword>Landing Strips</Keyword>
  </KeywordList>
  <CRS>EPSG:2230</CRS>
  <CRS>CRS:84</CRS>
  <EX_GeographicBoundingBox>
    <westBoundLongitude>-117.36526677636073</westBoundLongitude>
    <eastBoundLongitude>-116.12621141861304</eastBoundLongitude>
    <southBoundLatitude>32.534227762958466</southBoundLatitude>
    <northBoundLatitude>33.36158563104289</northBoundLatitude>
  </EX_GeographicBoundingBox>
  ...

Esta sección permite al cliente averiguar qué conjuntos de datos están disponibles, dónde se encuentran y qué sistemas de referencia de coordenadas se pueden usar en las solicitudes, construyendo así la solicitud GetMap.

GetMap

La solicitud GetMap permite a un cliente pedir al servidor que genere una representación de un conjunto de datos dado un estilo específico (usará el predeterminado si no se ha proporcionado ninguno).

Una solicitud GetMap es una URI HTTP GET con una cadena de consulta bien definida. Como ejemplo, la siguiente es una solicitud típica de GetMap:

Elemento Descripción
http://localhost/geoserver/geonode/wms? La URL base
service=WMS El servicio
version=1.1.0 La versión del servicio
request=Get

Map | La solicitud | | layers=geonode:states | La lista de conjuntos de datos (separados por comas, puede ser uno) | | styles= | La lista de nombres de estilos (separados por comas, puede estar vacío para usar el predeterminado) | | bbox=-124.73142200000001, 24.955967,-66.969849, 49.371735 | El área que debe ser representada | | width=768 | Ancho de la salida en píxeles | | height=330 | Altura de la salida en píxeles | | srs=EPSG:4326 | El sistema de referencia de coordenadas de salida (el BBOX se expresa en este SRS) | | format=image/png | El formato solicitado (podría haber sido image/png, image/jpeg, o cualquier otro listado en el documento de capacidades) |

GetFeatureInfo

La solicitud GetFeatureInfo permite a los clientes realizar una solicitud de "¿qué hay aquí?" para uno o más de los conjuntos de datos solicitados.

El "aquí" se especifica dando las coordenadas del píxel en el que el usuario hizo clic dentro de la salida de GetMap que el usuario está viendo.

Como ejemplo, ve a cualquier página de detalles de un conjunto de datos y haz clic en un punto en el mapa correspondiente a algunos datos. Obtendrás información sobre los datos en esa posición específica.

Creando un Mapa Base

  • Desde el menú desplegable Agregar Recurso en la página de lista de recursos, haz clic en el enlace Crear Mapa. imagen

  • GeoNode mostrará un mapa vacío con un fondo predeterminado; desde el menú en la parte superior, haz clic en el botón Agregar capa. imagen

  • El menú lateral del catálogo aparecerá mostrando los conjuntos de datos disponibles; comienza a agregar las superposiciones haciendo clic en los conjuntos de datos que deseas agregar.

ADVERTENCIA: el orden de las superposiciones es importante en un mapa; siempre puedes cambiar el orden arrastrando el conjunto de datos hacia arriba o hacia abajo.

![imagen](./img/layers_catalog.png)
  • Para ver los conjuntos de datos seleccionados, haz clic en el menú de capas en la esquina superior izquierda. imagen

  • Cambia el nivel de detalle del conjunto de datos de fondo acercándote y alejándote para mostrar/ocultar los detalles del conjunto de datos. Cambia la opacidad de las capas de conjunto de datos haciendo clic en el control deslizante que dice 100% y arrastrándolo hacia arriba y hacia abajo. imagen

  • Una vez que estés satisfecho, haz clic en Guardar en la esquina superior izquierda del menú y selecciona Guardar Como. imagen

  • Proporciona un nombre y una descripción y luego haz clic en el botón Guardar. imagen

  • Si la máquina es particularmente lenta, la acción de guardar podría mostrar un error de tiempo de espera. Puedes ignorarlo e ir a la lista de mapas. Haz clic en ver, luego haz clic en ver mapa en el nuevo mapa creado para entrar en la página de Detalles del Mapa.

Vínculo de un Recurso al Mapa

  • Desde el menú desplegable Editar en la página de detalles del mapa Boulder, haz clic en el enlace Editar Metadatos. imagen

  • Haz clic en Metadatos Opcionales. imagen

  • Ve a Vínculos de Recursos y selecciona Mainrd del cuadro desplegable. imagen

  • Haz clic en Actualizar para persistir los cambios. imagen

  • Desde la página de detalles del mapa Boulder, haz clic en el enlace Info. imagen

  • Desde el panel Info, haz clic en la sección Recursos Vinculados. imagen

El mismo procedimiento se puede realizar para otros recursos en GeoNode.

Enlace a la documentación oficial