ArcIMS: eliminarea butonului Refresh Map
de Vasile Crăciunescu
25.10.2014 Tutorialul de fața folosește o versiunea mai veche a softului prezentat. Va rugăm consultați versiunea actualizată sau contactați autorul.
Introducere
În majoritatea aplicațiilor de webmapping, bifarea/debifarea casetei ce controlează vizibilitatea unui strat nu produce un efect imediat, fiind necesară folosirea unui buton care să actualizeze conținutul hărții (Ex: Refresh Map, Redraw Map, Update Map). Motivația pentru aceastăa bordare, diferită de ceea ce găsim în aplicațiile GIS desktop, trebuie căutată în modul de funcționare a acestor aplicații. Practic, fiecare modificare, efectuată de utilizator, asupra modului de afișarea a straturilor, este trimisă către aplicația server. În funcție de extinderea spațială, nivelul de zoom și configurația straturilor, aceasta generează harta și o trimite către browser. În cazul în care utilizatorul nu dispune de o conexiune Internet rapidă și dorește să facă mai multe modificări în modul de afișare a straturilor, abordarea cu butonul Refresh Map este de preferat deoarece scurtează timpii de încărcare, trimițînd o singură cerere către server. În situația în care utilizatorul dispune de o conexiune rapidă sau aplicația mapserver rulează în cadrul unui Intranet, butonul de Refresh poate fi eliminat. În continuare vom prezenta pașii ce trebuiesc parcurși pentru eliminarea acestui buton din template-ul implicit al aplicației ArcIMS 9.x (HTML viewer) și afișarea/ascunderea imediată a unui strat la bifarea/debifarea butonului corespunzător.
Abordare practică
Pentru realizarea acestui tutorial am am folosit instrumentele standard oferite de ESRI: ArcIMS Administrator, ArcIMS Author, ArcIMS Designer, pentru crearea și publicarea serviciului de webmapping și un editor de text, EditPlus, pentru modificarea codului HTML și JavaScript. Codul de plecare a fost cel implicit realizat de aplicația ArcIMS Designer (Figura 1).
Figura 1. ArcIMS – Interfața HTML implicită.
Firesc, primul pas în eliminarea butonului este identificarea codului care îl generează. Template-urile implicite ale ArcIMS se bazează pe o structură HTML complicată, ce utilizează elementele Frame și Table pentru poziționarea elementelor funcționale ale aplicației. Această abordare nu este recomandată de standardele WC3 deoarece nu asigură separarea setructurii semantice de prezentarea grafică.
După o scurtă căutare, am identificat codul cu pricina, liniile 174 – 179, din fișierul toc.htm aflat în rădăcina site-ului generat de ArcIMS Designer (Listing 1).
/arcims_toc_initial.txt was not found.
De aici aflăm informația esențială, și anume numle funcției care realizează actualizarea hărții, atunci cînd utilizatorul apasă butonul: onClick=“updateLayers()”. În continuare, vom încerca să declanșăm aplelarea aceastei funcții, folosind checkbox-urile din dreptul fiecărui strat și nu butonul Refresh Map. Am identificat codul care generează acest checkbox în linia 150 din fișierul toc.htm (Listing 2).
/arcims_toc_checkbox_initial.txt was not found.
Apelarea funcției updateLayers() se face prin adăugarea fragmentului de cod onClick=“updateLayers()” în această linie (Listing 3).
/arcims_toc_checkbox.txt was not found.
Pentru finalizarea tutorialului, se elimină liniile 174-179 și se salvează documentul. Efectul este cel așteptat, bifarea/debifarea checkbox-ului asociat unui strat va declanșa reafișarea hărții și includerea/excluderea stratului respectiv în/din hartă. Fișierul toc.htm astfel modificat poate fi studiat în Listingul 4.
/arcims_toc_final.txt was not found.