Manifold IMS, fent alguna cosa més
En el post anterior vam veure com fer per crear un servei d'IMS, muntat sobre la plantilla punxi bàsica que ve per default.
Ara vegem com fer interacció entre un i un altre mapa amb l'opció d'hipervincles i una mica de codi. El projecte es basa en un mapa d'Estats Units, amb tematització per regions, semblant al que pot passar a l'navegar des d'una sectorització índex o mapes quadrant de diferent escala.
les dades
- 1 mapa índex anomenat states.map, compost només de l'component, aquest té el seu propi config.txt
- 1 mapa per cada regió amb el seu propi map, aquest té un map addicional al seu drawing i un label, després hi ha publicat amb el seu propi config.txt
- 1 asp de default, que mostra l'índex
- 1 asp anomenat map, que és la plantilla per als mapes mostados; aquest revisa quin és el mapa i config que ha de deplegar
- 1 asp per mostrar la taula de la dreta, que es mostrarà activar l'ordre "info"
- 1 plantilla d'estil anomenada default.css
- 1 carpeta on estan les imatges de el marc de el mapa
Si veiem el gràfic, la publicació de cadascuna de les regions la fan creant un map individual, amb el seu label i tematitzat. Però a l'enviar-lo a publicar han triat un mateix template però amb un config individual.
A la fi de l'cas, el cofig conté un text bàsic on es defineix el component, fitxer a obrir i altres vanalidades.
component = Counties Mtn Map
copyright = Copyright (C) 2005. All rights reserved.
cx = 600
ci = 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 funcionalitat
El que es busca és que a partir d'un mapa índex es pugui anar a un mapa particular i d'aquest tornar a l'anterior.
Això ho resolen col·locant un URL en la taula que indica a on anirà, en cas de l'índex només envia als mapes de regions. En cas dels mapes de regions dalt hi ha un URL per tornar a el mapa inicial.
<% If (title! = "" || regió! = "") {%>
">
<% If (regió! = "") {%>United States> <%}%>
<% If (title! = "" && regió! = "") {%> - <%}%>
<% If (title! = "") {%> <% = Encode (title)%> <%}%>
<%}%>
Per desplegar la taula, van crear un asp que aixeca les dades de l'objecte seleccionat en una taula com es veu en el iframe a la dreta.
els hipervincles
Tota la ciència d'aquesta plantilla es basa en crear hipervincles entre un mapa i un altre:
Si es fixen, no és altra cosa que un URL al host, triant que des de la plantilla default seleccioni una mapa. Per crear una columna de hipervincle es tria en el tipus de dades URL des del disseny de la taula, en aquest cas enviant a una variable anomenada "regió" configurada a la plantilla de l'asp default.
// create parameters
var command = parameterForm ( "comandament", "startup");
var mode = parameterForm ( "mode", "center");
var region = parameterForm ( "regió"," ");
var regionCurrent = parameter ( "regió"," ");
var state = parameterForm ( "state", "");
var x = parameterForm ( "x", "");
var i = parameterForm ( "i", "");// change regions if necessary
if (regió ! = RegionCurrent) {
regió = RegionCurrent;
state = "";
}
Ah !, li tens por a el codi, vinga que aquest i altres exemples es poden descarregar de la web de Manifold, Inclou els mapes i carpeta de publicació amb els asp ja creats. Cal obrir-lo i muntar el servei tal com ho vaig explicar abans. Després es pot anar substituint amb un exemple que propi i allà es veu que no és res de l'altre món.
També en aquesta consulta del fòrum es mostren diferents webs reals muntades sobre Manifold, de les que abans vaig parlar d'un exemple.