Manifold IMS, haciendo algo más

ims manifold gis

imageEn el post anterior vimos como hacer para crear un servicio de IMS, montado sobre la plantilla pinche básica que viene por default.

Ahora veamos como hacer interacción entre uno y otro mapa usando la opción de hipervínculos y algo de código.  El proyecto se basa en un mapa de Estados Unidos, con tematización por regiones, similar a lo que puede pasar al navegar desde una sectorización índice o mapas cuadrante de diferente escala.

Los datos

  • 1 mapa índice llamado states.map, compuesto solo del componente, este tiene su propio config.txt
  • 1 mapa por cada región con su propio map, este tiene un map adicional a su drawing y un label, luego está publicado  con su propio config.txt
  • 1 asp de default, que muestra el índice
  • 1 asp llamado map, que es la plantilla para los mapas mostados; este revisa cual es el mapa y config que debe deplegar
  • 1 asp para mostrar la tabla de la derecha, que se mostrará activar el comando "info"
  • 1 plantilla de estilo llamada default.css
  • 1 carpeta donde están las imágenes del marco del mapa

imageSi vemos el gráfico, la publicación de cada una de las regiones la hacen creando un map individual, con su label y tematizado.  Pero al mandarlo a publicar han elegido un mismo template pero con un config individual.

Al final del caso, el cofig contiene un texto básico donde se define el componente, archivo a abrir y otras vanalidades.

component = Counties Mtn Map
copyright = Copyright (C) 2005. All rights reserved.
cx = 600
cy = 400
file = C:InetpubWwwrootMultiMapCountiesMtn.map
hyperlinks = true
imageDesc = false
logo = true
subtitle = Click on the link above to return to the main US map.
title = Mountains

La funcionalidad

Lo que se busca es que a partir de un mapa índice se pueda ir a un mapa particular y de este regresar al anterior.

Esto lo resuelven colocando un url en la tabla que indica a donde irá, en caso de el índice solo envía a los mapas de regiones.  En caso de los mapas de regiones arriba hay un url para regresar al mapa inicial.

<% if (title != "" || region != "") { %>
    <tr><td class="header" colspan="2" width="<%= cxhdr %>">
        <% if (region != "") { %><a href="default.asp">United States</a><% } %>
        <% if (title != "" && region != "") { %> – <% } %>
        <% if (title != "") { %><%= encode(title) %><% } %>
    </td></tr>
    <% } %>

Para desplegar la tabla, crearon un asp que levanta los datos del objeto seleccionado en una tabla como se ve en el iframe a la derecha.

ims manifold gis 

ims manifold gis

Los hipervínculos

Toda la ciencia de esta plantilla se basa en crear hipervínculos entre un mapa y otro:

image

Si se fijan, no es otra cosa que un url al host, eligiendo que desde la plantilla default seleccione una mapa. Para crear una columna de image hipervínculo se elige en el tipo de datos URL desde el diseño de la tabla, en este caso enviando a una variable llamada "region" configurada en la plantilla del asp default.

// create parameters
var command = parameterForm("command", "startup");
var mode = parameterForm("mode", "center");
var region = parameterForm("region", "");
var regionCurrent = parameter("region", "");
var state = parameterForm("state", "");
var x = parameterForm("x", "");
var y = parameterForm("y", "");

// change regions if necessary
if (region != regionCurrent) {
    region = regionCurrent;
    state = "";
}

Ah!, le tienes miedo al código, venga que este y otros ejemplos se pueden descargar de la web de Manifold, incluye los mapas y carpeta de publicación con los asp ya creados. Hay que abrirlo y montar el servicio tal como lo expliqué antes.  Luego se puede ir remplazando con un ejemplo que propio y allí se  ve que no es nada del otro mundo.

También en esta consulta del foro se muestran diferentes webs reales montadas sobre Manifold, de las que antes hablé de un ejemplo.

geograficas a utm 2

Tagged with 

Deja un comentario

Tu dirección de correo electrónico no será publicada.