Efficient Visualization of Graphical Objects

PAULA FREDERICK,MARCELO GATTASS,MAURICIO RIGUETTE MEDIANO

TeCGraf – Grupo de Tecnologia em Computac¸˜ao Gr´afica, Departamento de Inform´atica, PUC-Rio, Rua Marquˆes de S˜ao Vicente, 225, 22453-900 Rio de Janeiro, RJ, Brasil paula,gattass,[email protected]

Abstract. The use of appropriate data structures for storing sets of graphical objects can lead to great performance improvements in the visualization of large figures, such as maps and CAD drawings. We present here a study on the performance of persistent data structures composed by an R-tree and V-trees, for storing and efficiently retrieving 2D graphical objects. Results are shown to demonstrate the efficiency of the proposed solutions when applied to large maps. Keywords: GIS, Metafile, Access Methods.

1 Introduction than the current resolution will not be drawn into the Over the last decade, systems which use huge quantities visualization surface. Therefore, the simplification of of spatial data have been increasingly gaining importance. the graphic objects considering the current drawing Examples of such systems can be found in geographic in- resolution leads to performance gains. formation systems (GIS), CAD/CAM, and others. One of Areas where database technologies play an important role, the requirements of those systems is to provide efficient vi- such as GIS and CAD, have long recognized the impor- sualization of their spatial data, enabling the users to inter- tance of the first two points. In computer graphics, these actively visualize all or part of the data, in all scales. points are becoming more relevant, as one wishes to render In computer graphics the conventional method for complex scenes such as terrains, cities, building interiors, drawing spatial objects is to treat them as a simple collec- molecules, and biological structures as quickly as possible tion of graphical objects stored either in metafiles, linked [17, 18]. lists, or acyclic trees. The visualization process traverses The third point is treated as cartographic simplifica- the file or data structure and for each object the program tion in digital cartography, and as level of detail in com- applies the appropriate geometric transformation, clips it puter graphics (see Paul Heckbert’s SIGGRAPH ’97 Lec- with the visualization window, and renders it into the vi- ture Note [6] for a good review on the subject). sualization surface. However, as data size and complexity In this paper we initially restrict our focus to two- grow, this process becomes very slow, and new techniques dimensional graphical vector objects composed by graph- are required for dealing with this large data volumes. The ical primitives such as polygonal lines, closed polygons, following issues have to be considered in the visualization text, and point objects. Two-dimensional objects are of- of large spatial data. ten complex either because they are composed of many graphical primitives or because their primitive has too many ¯ Memory usage - because of the data size, it is very points. In the first case, complexity can be treated with a hi- likely that the whole data will not fit into the com- erarchical structure based on the bounding box of the prim- puter’s main memory. Thus the need for a secondary itives, and in the second case it can be treated by some line storage memory, which implies in much larger access simplification scheme. Thus, with the use of an adequate time. Consequently it is important to have a good data structure for storing the spatial data, we can expect to memory management subsystem in order to minimize obtain considerable performance gains. In this paper we de- the I/O communication. scribe the use of a persistent data structure composed by an R-tree [5, 15, 2] and V-trees [11], for storing and efficiently ¯ Scene clipping - the user will often visualize only part of the data. Thus we can decrease visualization time retrieving 2D spatial data for their visualization. by only retrieving the objects that are inside the visu- Spatial objects are either two-dimensional or three- alization area. Objects that are outside this area should dimensional and can be represented by either vector or be left untouched in the secondary storage memory. raster graphical objects. In this paper we have only con- sidered two-dimensional graphical vector objects; raster

¯ Level of detail - when the data visualization scale is and three-dimensional objects are left for a future work. large, the details of the scaled data which are smaller Our primary goal when developing the techniques pre- sented here was to visualize large maps. The method pro- figure description’s traversal. This constitutes a problem for posed is, however, directly applicable to any kind of two- spatially indexed graphical objects, as we will discuss later dimensional figure. in this paper. To test our ideas we have developed the Drops (Draw- The line attributes used here are line color, line style, ing Objects on Persistent Systems) system, which stores a line width, and write mode (replace or xor). The primi- general 2D vector figure in a file, and afterwards retrieves tives affected by this set of attributes are line, polyline, and portions of data for visualization. Tests were performed arc. The area attributes are: foreground color, background comparing our scheme with the use of a conventional CGM color, write mode, opacity, and interior style. Depending (ISO Computer Graphics Metafile [8]) driver. Results are on the interior style the primitive may be filled with a stip- shown to support some conclusions. ple or a texture. Primitives box, polygon, and sector have This paper is structured as follows. The next section this set of attributes. Finally, the text attributes describe describes how the graphical objects are represented. In the text characteristics. These attributes are: foreground color, third section we provide some concepts about spatial access background color, write mode, opacity, typeface, style, and methods. In the fourth section we present the persistent size. As pointed out before, two-dimensional objects can storage subsystem used by Drops. Section five describes have a much more detailed description of their appearance, the methods to store and retrieve data. Finally, we describe but these attributes are enough to the objectives of this pa- the experiments done with geographic data, the results and per and can yield figures as complex as the one shown in the conclusions. Figure 1.

A.I. INGARIKO

A.I. SAO MARCOS A.I. SANTA INES A.I. ANANAS A.I. RAPOSA SERRA DO SOL A.I. JUMINA OIAPOQUE A.I. CAJUEIRO A.I. XUNUNUETAMU A.I. PONTA DA SERRA A.I. ARACA A.I. GALIBI A.I. ANTA A.I. OURO A.I. SERRA DA MOCA A.I. ANNGAL A.I. BOM JESUS A.I. UACA A.I. BOQUEIRAO A.I. JABOTI A.I. MANGUEIRA A.I. MURIRUH BOA VISTA A.I. SUCUBA A.I. MANOA PIUM RAIMUNDAO A.I. BARATA/LIVRAMENTO A.I. RECANTO DA SAUDADE A.I. BOM JESUS A.I. CANAUANIM A.I. CUIARI A.I. TABA LASCADA A.I. JACAMIM A.I. ICANA-AIARI A.I. MALACACHETA A.I. WAIAPI RIO IPITINGA A.I. KURIPACO A.I. XIE TERRA INDIGENA PARQUE INDIGENA 2 Graphical Primitives DO TUCUMAQUE A.I. WAI-WAI AP A.I. MEDIO ICANA A.I. YAUARETE I RR A.I. WAIAPI A.I. MAKU A.I. ICANA RIO NEGRO A.I. CUBATE A.I. RIO PARU DE ESTE A.I. YAUARETE II A.I. TROMBETA/MAPUERA MACAPA A.I. BALAIO A.I. CACHORRO/CACHORRINHO A.I. PARI-CACHOEIRA I

A.I. TARACUA RIO UAUPES A.I. PAI RAIMUNDO A.I. CUMINAPANEMA/URUCURIANA A.I. PARI-CACHOEIRA III A.I. PARI CACHOEIRA II A.I. SAO LUIZ RIO NEGRO

A.I. NHAMUNDA/MAPUERA A.I. SAO SEBASTIAO A.I. WAIMIRI/ATROARI A.I.UNEIUXI A.I. SAMAUMA BELEM A.I.MARAA URUBAXI A.I.PARANA DO BOA-BOA Two-dimensional graphical objects are represented by a A.I.PARANADO PARICA A.I. ALTO RIO GUAMA A.I. ILHA JACARE E XIPACA A.I. UATI-PARANA

A.I. NATAL/FELICIDADE PARINTINS A.I. TIKUNA DE BETANIA A.I. BOA VISTA A.I. RECREIO/SAO FELIX C.I. TURE MARIQUITA A.I.ESTRELA DA PAZ A.I. MARINHEIRO SAO LUIS A.I.JAQUIRI A.I. MURUTINGA A.I. II A.I.MACARRAO A.I.MIRATU MANAUS A.I. TRACAJA ALTAMIRA A.I. MANAMBE A.I. TEMBE A.I. TIKUNA EVARE I A.I.MARAJAI A.I. JATUARANA A.I. TREMEMBE A.I. IGARAPE PATIA A.I.MERIA A.I. IG.CARIOCA A.I. JUMAS A.I. GUAPENU A.I. PAQUICAMBA A.I. ALTO TURIACU A.I.IG. GRANDE A.I.KOKAMA A.I. GAVIAO A.I. CUIA A.I. TIKUNA BOM INTENTO A.I. IG.PATAUA A.I. CAPIVARA A.I. AWA A.I. TIKUNA VUI-UATA-IN(NOVA ITALIA) A.I.BARREIRA DA MISSAO A.I. ITAITINGA PA A.I. ARARA URUCAGMA A.I. TIKUNA SANTO ANTONIO A.I. ILHA DO CAMALEAO A.I.A.I. SAO TRINCHEIRA PEDRO A.I. PARACUHUBA A.I. ANDIRA/MARAU A.I. MANAYES A.I. PINDARE A.I. LAGO BERURI A.I. PADRE A.I. KOATINEMO A.I. TROCARA STA. INES A.I. FORTALEZA A.I. LAMERAO A.I. TAIORE AUTAZES A.I. TIKUNA EVARE II A.I. TOBOCAL ITAITUBA set of primitives, which are like the geometric alphabet TABATINGA A.I. ONCA A.I. MIGUEL A.I. CACHOEIRA SECA A.I. CARU A.I. TIKUNA DE FEIJOAL A.I.LAGO DO AIAPUA A.I.JURUA A.I. SAPUCAIA A.I. PIRANHAS A.I. KARARAO A.I.TERRA VERMELHA A.I. COATA/LARANJAL A.I. TRINCHEIRA BACAJA A.I. TIKUNA SAO LEOPOLDO A.I. CUNHA A.I. PRAIA DO INDIO A.I. ARARIBOIA ATALAIA DO NORTE A.I. TIKUNA LAURO SODRE MA A.I.RIO BIA A.I. URUCU JURUA BENJAMIN CONSTANT AM A.I. PARAKANA A.I. MAE MARIA A.I. ARAWETE A.I. GERALDA/TOCO PRETO MARABA A.I. LAGOA COMPRIDA A.I. BACAJA CE A.I.APURINA IG. SAO JOAO A.I. GOVERNADOR BARRA DO CORDA A.I. RIO CURUA A.I.APURINA A.I. APYTEREWA IMPERATRIZ A.I. RODEADOR A.I.JARAWARA/JAMAMADI/KANAMATI A.I.LAGO MANISSUA I.G.TAUAMIRIM A.I. CANABRAVA E A.I.PAUMARI LAGO PARICA A.I. SORORO RN A.I. KULINA DO MEDIO JUTAI AREA INDIGENA DO VALE DO JAVARI A.I.PAUMARI DO CUNHUA A.I.SEPOTI A.I. TORA A.I. SAI-CINZA A.I. KANELA NATAL of figures. Here these primitives are markers (points), A.I. KRIKATI A.I.ZURUAHA A.I.MARIMA A.I. RIO MANICORE A.I.BANAWA/IAFI A.I. BARREIRA DO CAMPO A.I. XICRIN DO RIO CATETE A.I. KANAMARI DO JURUA A.I. APINAYE A.I. PORQUINHOS EIRUNEPE A.I. DENI A.I.IPIXUNA A.I. MUNDURUCU A.I. BACURIZINHO A.I. MORRO BRANCO A.I.TAPAUA A.I. A.I. XAMBIOA LABREA A.I. PIRAHA PI PB A.I. JACARE DE A.I. POYANWA A.I. CAMADENI A.I. NOVE DE JANEIRO A.I. BAU SAO DOMINGOS A.I. NUKINI ARAGUAIANA JOAO PESSOA A.I. KULINA VALE DO JURUA A.I. CACAU DO TARAUACA A.I. JUMA A.I. KAIAPO A.I. KULINA ACURAWA A.I. AGUA PRETA/IMARI A.I.ACIMA HUMAITA A.I. CAITITU A.I. KULINA MEDIO JURUA CRUZEIRO DO SUL A.I. TIMBAUBA A.I. S.PEDRO A.I. TENHARIN REDENCAO A.I. RECREIO I DO SEPATINI TRANZAMAZONICA A.I. KAMPINAS/KATUKINA A.I. KATUKINA/KAXINAWA A.I.ALTO SEPATINI A.I. lines, polylines (polygonal lines), filled polygons, rectan- A.I. LIBERDADE FEIJO A.I.PENERI/TACAQUIRI A.I.TUMIA A.I. JACAREUBA/KATAWIXI A.I. KRAOLANDIA RECIFE A.I. KAXINAWA IG. DO GAUCHO A.I.SEREUINI MARIENE A.I. TENHARIN/IG. PRETO A.I. CAYABI A.I. MARAMANDUBA A.I. TRUKA A.I. XUCURU A.I. JAMINAWA IG. PRETO A.I. KAXINAWA COLONIA PORTO VELHO PE A.I. RIO GREGORIO BOCA DO A.I. CIRIQUIQUI A.I. CAYABI (Gleba sul) A.I. MENKRAGNOTI A.I. RIOZINHO DA LIBERDADE A.I. IGARAPE ANJO A.I. IG. CAPANA A.I.CAMUCUA A.I. KARAJA SANTANA DO ARAGUAIA A.I. KAMBIWA A.I. KAPINAWA A.I. BOCA DO ACRE A.I. JAMINAWA-ARARA A.I. KAXARARI A.I. ARIKEM (CACH.SERINGAL) A.I. RIO MERURE A.I. NOVA RODELAS GARANHUNS ACA.I. KAXINAWA NOVA OLINDA A.I. ARARA DO (RIACHO DO BENTO) A.I. KAMPA DO RIO AMONEA BEIRADAO A.I. ESCONDIDO A.I.PANKARARU A.I. WASSU-COCAL A.I. PIRIRICURA BREJO DO BURGO A.I. JERIPANCOH A.I. A.I. XUCURU/KARIRI A.I. ALTO RIO PURUS RO A.I. PANKARARE A.I. MATA DA CAFURNA A.I. KARIPUNAA.I. RIO CANDEIAS PAULO AFONSO A.I. KAXINAWA DO RIO BREU A.I. KULINA (IG. DO PAU) RIO BRANCO A.I. FUNIL A.I. FAZENDA DO CANTO MACEIO A.I. (RIO PRETO) A.I. ZORO A.I. XOCO DA ILHA DE SAO PEDRO AL A.I. KAXINAWA DO RIO JORDAO A.I. PRAIA DO CARAPANA A.I. IGARAPE LOURDES A.I. CAPOTO/JARINA A.I. CAICARA A.I. TINGUI-BOTO A.I. RIBEIRAO A.I. ARIPUANA A.I. JAPUIRA A.I. KARIRI-XOCO A.I. ARIKEM A.I. TAPIRAPE KARAJA A.I. CARAPOTO A.I. KAMPA DO RIO ENVIRA A.I. IGARAPE LAGE A.I. RIO DOS PEIXES A.I. BOTO VELHO A.I. MASSACARA gles, arcs, filled sectors, vector texts, and scalable raster A.I. MAMOADATE A.I. URUBU A.I. KAXINAWA DO RIO HUMAITA GUAJARA-MIRIM A.I. KARIPUNA RIO FORMOSO A.I. SERRA SE A.I. KULINA DO RIO ENVIRA A.I. CABECEIRA DO RIO ACRE A.I. RIO OCAIA A.I. KIRIRI A.I. SAO DOMINGOS A.I. XINANE A.I. APIAKA/KAYABI TO ARACAJU P.Q.I DO ARAGUAIA A.I. URU-EU-WAU-WAU A.I. SETE DE SETEMBRO P.Q.I. ARIPUANA A.I. ERIKPATSA A.I. PAACA NOVAS SAO FELIX BA CACOAL ADR: ARAGUAIA A.I. MACURAP A.I. ENAWENE-NAWE GURUPI A.I. SAGARANA A.I. RIO GUAPORE A.I. PAUMELENHOS A.I. PARINTINTINS A.I. RIO BRANCO A.I. MENKU A.I. JABUTI (QUINTAO) A.I. MIQUELENHOS A.I. ROOSEVELT A.I. IBOTIRAMA (FAZ. MORRINHOS) A.I. TUBARAO LATUNDE A.I. BARRA A.I. MASSACO P.Q.I. DO XINGU A.I. POSTO FISCAL A.I. TIRECATINGA A.I. ARUA I (RIO COLORADO) texts. These are the basic graphical primitives of any 2D VILHENA MT A.I. ARUA II (CACH. PAULO SALDANHA) A.I. RIO MEQUENS A.I. NAMBK KWARA A.I. IRANTXE A.I. ARUA III (RIO TEREBITO) A.I. PIRINEUS DE SOUZA A.I. VARGEM ALEGRE A.I. MARECHAL

A.I. UTIARITI RONDON A.I. PIMENTEL BARBOSA A.I. SANTANA

A.I. AVA-CANOEIRO A.I. PARESI ESTACAO RONDON A.I. VALE DO GUAPORE A.I. DO RIO FORMOSO A.I. AREOES A.I. FAZ. BAHIANA A.I. PEQUIZAL A.I. BAKAIRI TANGARA DA SERRA A.I. TAIHANTESU A.I. PARABURE A.I. JUININHA A.I. ESTIVADINHO A.I. KARAJA/ARUANA A.I. graphical library, such as Windows GDI or XLib. A.I. SARARE A.I. FIGUEIRAS A.I. SAO MARCOS A.I. CARRETAO A.I. XAKRIABA CUIABA A.I. LAGO GRANDE A.I. SANGRADOURO VOLTA GRANDE A.I. MERURE DF A.I. CARAMURU/PARAGUASSU BARRA DO GARCAS A.I. LUIZA DO VALE A.I. JARUDORE RONDONOPOLIS GO A.I. MATA MEDONHA A.I. TADARIMANA A.I. TEREZA CRISTINA GOIANIA A.I. COROA VERMELHA A.I. PERIGARA A.I. IMBIRIBA EUNAPOLIS In the geometric sense, two-dimensional graphical ob- A.I. PRADINHO A.I. BARRA VELHA A.I. AGUAS BELAS A.I. MAXACALI A.I. GERIPACO

MG A.I. CAMBA GOV. VALADARES A.I. FAZENDA GUARANI jects are simpler than 3D objects, but in the description of A.I. LALIMA A.I. KRENAK A.I. CACHOEIRINHA A.I. PILA DE REBUA ES A.I. TAUNAY/IPEGUE A.I. AGUA LIMPA BELO HORIZONTE A.I. COMBOIOS A.I. PAU BRASIL MS A.I. CAEIRAS VELHA A.I. KADIWEUS A.I. LIMAO VERDE

A.I. ALDEINHA A.I. BURITI A.I. IGUAICURU A.I. BURITIZINHO A.I. OFAYE- VITORIA A.I. NIOAQUE

A.I. ICATU A.I. DOURADOS their appearance usually the opposite occurs. Thick polyg- A.I. SUCURI A.I. VANUIRE A.I. PIRACUA A.I. PANAMBI A.I. ARARIBA A.I. PANAMBIZINHO A.I. GUAIMBE SP A.I. CAMPESTRE A.I. RANCHO JACARE A.I. CERRO MANGARATU A.I. CAARAPO BAURU A.I. LIMA CAMPO A.I. JARARA RJ A.I. GUASUTI AMAMBAIA.I. JAGUARI A.I. TAGUAPERI A.I. AMAMBAI A.I. JAGUAPIRE A.I. LARANJINHA A.I. GUARANI-BRACUI A.I. PINHAUZINHO A.I. AMAMBAI (ALDEIA LIMAO VERDE) A.I. SASSORO RIO DE JANEIRO A.I. SETE CERROS A.I. CERRITO LONDRINA A.I. JARAGUA A.I. PIRAJUI A.I. BARAO DE ANTONINA A.I. GUARANI-ALDEIA ARAPONGA/PATRIMONIO A.I. PORTO LINDO A.I. APUCARANA A.I. SAO JERONIMO A.I. GUARANI DO KRUCUTU onal lines have joint style, and texts have many typographic A.I. TAKUARATY/YVYKUARUSU A.I. TIBAGY A.I. BOA VISTA DO SERRAO DO PROMIRIM A.I. GUARANI DA BARRAGEM A.I. QUEIMADAS A.I. RIO BRANCO A.I. GUARANI DO A.I. PERUIBES A.I. IVAI RIBEIRAO VIEIRA OCEANO ATLANTICO A.I. FAXINAL A.I. SERRA DO ITATINS PR A.I. AVA-GUARANI A.I. MARRECAS A.I. RIO DAS COBRAS GUARAPUAVA CURITIBA

A.I. RIO AREIA A.I. ILHA DA COTINGA attributes. A.I. MANGUEIRINHA A.I. TOLDO IMBU A.I. RIO DOS PARDOS

A.I. PALMAS A.I. IBIRAMA A.I. XAPECO CHAPECO A.I. TOLDO CHIBANGUE A.I. RIO DA VARZEA A.I. DE IRAI A.I. PINHAL/NOVA TEUTONIA A.I. VOTOURO A.I. NONOAI A.I. GUARITA A.I. GUARANI VOTOURO SC A.I. CACIQUE DOBLE FLORIANOPOLIS A.I. INHACORA A.I. LIGEIRO A.I. MORRO DOS CAVALOS As usually the attributes of a drawing do not vary as A.I. CARRETEIRO - PASSO FUNDO FONTE: FUNDACAO, NACIONAL DO INDIO - FUNAI AGO/92 A.I. BORBOLETA SITUACAO, DAS AREAS A.I. IBICUI INDIGENAS A.I. JAGUARIZINHO A.I. GUARANI DE A.I. IMBAA RS BARRA DO OURO A IDENTIFICAR PORTO ALEGRE A.I. CANTA GALO A.I. IRAPUA much as the geometric descriptions of the primitives do, A.I. CAPIVARI A.I. TAPES IDENTIFICADA A.I. PACHECA LEGENDA , DEMARCADA A.I. - AREA INDIGENA LOCALIZACAO DAS AREAS INDIGENAS 2 and the graphical system has basically two approaches to PQI - PARQUE INDIGENA 60 Esc 1:5.500.000 REGULARIZADA - ADMINISTRACAO, REGIONAL 42 54 AUTOR EDITOR DATA ARQUIVO deal with this: (1) current values, and (2) tables (sometimes 48 Adelino Set/92 i153.MP473 called objects). In the current value approach the graphical Figure 1: Indian Areas in system stores a set of values for each aspect of the prim- itives, and these primitives are only defined in geometric terms. The color, style, and other appearance attributes are taken from the current value in the set. Attribute functions 3 Spatial Access Methods are used to change these values for the forthcoming primi- Several works in the field of spatial access methods were tives. proposed over the last years: Z-order [13] transforms points In the table approach a given appearance of a type of from n-dimensional space into points in one-dimensional primitive is stored as a record in a table. There are tables space, subsequently indexing them using B-trees; R-trees for each type of attributes: pen tables (line attributes), brush [5, 15, 2] and Grid-files [12] index points and rectangles, tables (interior style of regions), and text tables. Each prim- bringing each spatial object closer to its bounding box, and, itive has a pointer for its attribute in the corresponding table. when the bounding box is not enough to solve a spatial op- The current value approach is simpler to use and yields eration, recovering the object’s complete geometry. a smaller description of the figure, once the appearance of Two access methods were proposed to index the com- many primitives will be only implicitly defined. It depends, plete geometry of spatial objects: TR-tree [14, 3], and the however, on the order in which the primitive occurs in the V-tree family [11]. The TR-tree indexes a region by means of a set of trapezoids stored in an R-tree, in which the approximating the object itself it just approximates an en- region’s holes are already represented. The V-tree fam- tire subset of objects by its bounding box. In order to add ily indexes polygonal lines forming the borders of spatial this functionality into the R-tree, we have added a color objects, optimizing geometrical and multiresolution opera- field to each entry of the tree nodes with the purpose of tions. storing the appearance description of the object subset con- Strip-tree [1] and Arc-tree [4] are binary trees which tained in the entry’s sub-tree. This additional field forms store the geometry of polygonal lines, and optimize geo- together with the entry’s bounding box a filled rectangle metrical and multiresolution operations. The V-trees can which is the simplified scheme of the corresponding sub- be seen as variants of Strip-tree and Arc-tree adequate for set. During the region query, the sub-trees whose bounding storing and manipulating large amounts of vector data in a boxes fit inside a small given region (for example, a pixel) persistent environment. are not visited. For the appearance description we used just the color which is an essential attribute, but the inclusion of 4 Persistence more attributes is trivial. Also for simplicity, we pick the color of one of the objects in the subset to fill the rectangle. We have used the persistent-object storage subsystem OPS For the visualization process Drops enables the two [10]. This system provides an extensible and configurable multiresolution methods to be turned on and off. Notice model through which it is possible to model, implement, that, if the V-trees multiresolution is never turned on, the and combine different database technologies to provide new use of V-trees for storing the data will be completely un- capabilities or to obtain performance improvements. necessary. OPS is based on four abstractions: persistent object, Since Drops does not store the objects in a sequential object data area, object manager, and media. The OPS sub- manner, the original order of the objects is lost when the system is used to allocate persistent memory, through the data is converted from a sequential format. However, in media and the object manager, to check in and check out the cases in which object overlapping occurs, the order in graphic primitives, attribute tables, and R-tree and V-tree which the objects are drawn affects the resulting image, as nodes. It also manages a buffer layer that maintains in pri- is shown in Figure 2. mary memory the recently used object data areas. There are two strategies listed in the litarature to solve

the object overlap problem. The first is based on the R· - 5Drops tree [15] and uses clipping to avoid this problem. The second strategy is based on multilayer techniques [16, 7]. The Drops persistent-object manager is the OPS subsystem. Drops provides two solutions to this problem: object order- It is responsible for handling all the data access made to ing, and layers. the secondary storage media. The purpose of its utilization In the first case, each object receives a counter value is to minimize of the I/O communication, archived by the indicating its original order. This counter is stored together memory usage management. with the object pointer. When the data is read, first only The proposed data structure used by Drops for storing the object counters and pointers are retrieved. Then they large sets of 2D graphical objects is formed by a composi- are sorted, according to their original order, with the Quick tion of a few spatial access methods. Its primary structure Sort algorithm. Afterwards the entire object descriptions is the R-tree [5]. It has the function of spatially indexing the are retrieved. whole object set, enabling the user to retrieve only the ob- The second solution consists on the use of several lay- jects whose bounding boxes intersect or are inside a given ers for storing the objects. The data set is divided into lay- rectangular area. Given the static nature of the drawings ers of disjoint objects, thus when the layer order is kept the we use here a variant of the R-tree called Hilbert Packed objects will be drawn correctly. Drops treats this concept R-tree [9]. by using one R-tree for each layer, however there are some The remaining access methods, which also form the access methods which already treats these concepts. The data structure, are used just for storing complex graphi- main advantage of this solution is that there is no need to cal objects. They store these objects in a multiresolution sort a huge amount of data. However, the application will scheme in order to enable the retrieval of a simplified ver- have to correctly separate the data into a small number of sion of the object. There is a specific access method for layers, which sometimes can be impossible. each kind of object. In the case of vector objects, only Concerning the object attributes it is important to no- the polylines and the filled polygons are usually complex. tice that the current value approach cannot be used by Drops When these objects types are complex, Drops stores them because it does not store the objects sequentially. In order in V-trees [11], which index their geometry. to save space, we use the table approach to store a reference Multiresolution can also be provided by R-trees. How- to the attributes instead of storing the attributes themselves ever, the R-tree multiresolution is a bit different: rather than A.I. INGARIKO

A.I. SAO MARCOS A.I. SANTA INES A.I. ANANAS A.I. RAPOSA SERRA DO SOL A.I. XUNUNUETAMU A.I. JUMINA OIAPOQUE A.I. CAJUEIRO A.I. ARACA A.I. PONTA DA SERRA A.I. GALIBI A.I. ANTA A.I. OURO A.I. SERRA DA MOCA A.I. ANNGAL A.I. BOM JESUS A.I. UACA A.I. BOQUEIRAO A.I. MANGUEIRA A.I. JABOTI A.I. MURIRUH A.I. SUCUBA BOA VISTA A.I. MANOA PIUM RAIMUNDAO A.I. BARATA/LIVRAMENTO A.I. RECANTO DA SAUDADE A.I. BOM JESUS A.I. CANAUANIM A.I. CUIARI A.I. TABA LASCADA A.I. JACAMIM A.I. ICANA-AIARI A.I. MALACACHETA A.I. WAIAPI RIO IPITINGA A.I. KURIPACO A.I. XIE TERRA INDIGENA PARQUE INDIGENA YANOMAMI A.I. WAI-WAI DO TUCUMAQUE AP A.I. MEDIO ICANA A.I. YAUARETE I RR A.I. WAIAPI A.I. MAKU A.I. ICANA RIO NEGRO A.I. CUBATE A.I. RIO PARU DE ESTE A.I. YAUARETE II A.I. TROMBETA/MAPUERA A.I. BALAIO A.I. CACHORRO/CACHORRINHO MACAPA A.I. PARI-CACHOEIRA I

A.I. TARACUA RIO UAUPES A.I. PAI RAIMUNDO A.I. PARI-CACHOEIRA III A.I. PARI CACHOEIRA II A.I. CUMINAPANEMA/URUCURIANA A.I. SAO LUIZ RIO NEGRO

A.I. NHAMUNDA/MAPUERA A.I. SAO SEBASTIAO A.I. WAIMIRI/ATROARI A.I.UNEIUXI A.I. SAMAUMA BELEM A.I.MARAA URUBAXI A.I.PARANA DO BOA-BOA A.I.PARANADO PARICA A.I. ALTO RIO GUAMA A.I. ILHA JACARE E XIPACA

A.I. UATI-PARANA A.I. NATAL/FELICIDADE PARINTINS A.I. TIKUNA DE BETANIA A.I. BOA VISTA A.I. RECREIO/SAO FELIX C.I. TURE MARIQUITA A.I.ESTRELA DA PAZ A.I. MARINHEIRO SAO LUIS A.I.JAQUIRI MANAUS A.I. MURUTINGA A.I. ARARA II A.I. TEMBE A.I. TIKUNA EVARE I A.I.MACARRAO A.I.MIRATU A.I.MARAJAI A.I. JATUARANA A.I. TRACAJA ALTAMIRA A.I. MANAMBE A.I.MERIA A.I. IG.CARIOCA A.I. JUMAS A.I. GUAPENU A.I. PAQUICAMBA A.I. ALTO TURIACU A.I. TREMEMBE A.I. IGARAPE PATIA A.I.KOKAMA A.I. GAVIAO A.I. CUIA A.I. TIKUNA BOM INTENTO A.I.IG. GRANDE A.I. IG.PATAUA A.I. CAPIVARA A.I. AWA A.I. TIKUNA VUI-UATA-IN(NOVA ITALIA) A.I.BARREIRA DA MISSAO A.I. TRINCHEIRA A.I. ITAITINGA PA A.I. ARARA URUCAGMA A.I. TIKUNA SANTO ANTONIO A.I. ILHA DO CAMALEAO A.I. SAO PEDRO A.I. PARACUHUBA A.I. ANDIRA/MARAU A.I. KOATINEMO A.I. MANAYES A.I. PINDARE A.I. LAGO BERURI A.I. TAIORE A.I. PADRE A.I. TROCARA STA. INES A.I. TAPEBA FORTALEZA A.I. LAMERAO A.I. TIKUNA EVARE II A.I. TOBOCAL AUTAZES TABATINGA A.I. MIGUEL ITAITUBA A.I. CARU A.I. TIKUNA DE FEIJOAL A.I.LAGO DO AIAPUA A.I. ONCA A.I. CACHOEIRA SECA A.I.JURUA A.I. SAPUCAIA A.I. PIRANHAS A.I. KARARAO A.I.TERRA VERMELHA A.I. COATA/LARANJAL A.I. PRAIA DO INDIO A.I. TRINCHEIRA BACAJA A.I. TIKUNA SAO LEOPOLDO A.I. CUNHA A.I. ARARIBOIA MA ATALAIA DO NORTE A.I. TIKUNA LAURO SODRE BENJAMIN CONSTANT A.I.RIO BIA AM A.I. PARAKANA A.I. MAE MARIA A.I. URUCU JURUA A.I. ARAWETE A.I. GERALDA/TOCO PRETO MARABA A.I. LAGOA COMPRIDA A.I. BACAJA CE A.I.APURINA IG. SAO JOAO A.I. GOVERNADOR BARRA DO CORDA A.I. RIO CURUA A.I. RODEADOR A.I.JARAWARA/JAMAMADI/KANAMATI A.I.LAGO MANISSUA A.I.APURINA A.I. APYTEREWA IMPERATRIZ I.G.TAUAMIRIM A.I. SORORO A.I. CANABRAVA E GUAJAJARA RN A.I. KULINA DO MEDIO JUTAI A.I.PAUMARI LAGO PARICA AREA INDIGENA DO VALE DO JAVARI A.I.PAUMARI DO CUNHUA A.I.SEPOTI A.I. TORA A.I. SAI-CINZA A.I. KANELA NATAL A.I.ZURUAHA A.I. KRIKATI A.I.MARIMA A.I.BANAWA/IAFI A.I. RIO MANICORE A.I. BARREIRA DO CAMPO A.I. XICRIN DO RIO CATETE A.I. APINAYE A.I. PORQUINHOS A.I. KANAMARI DO JURUA A.I.IPIXUNA A.I. MUNDURUCU A.I. BACURIZINHO EIRUNEPE A.I. DENI A.I.TAPAUA A.I. MORRO BRANCO A.I. POTIGUARA A.I. XAMBIOA LABREA A.I. PIRAHA PI PB A.I. JACARE DE A.I. POYANWA A.I. CAMADENI A.I. NOVE DE JANEIRO A.I. BAU ARAGUAIANA SAO DOMINGOS JOAO PESSOA A.I. NUKINI A.I. KULINA VALE DO JURUA A.I. KAIAPO A.I. CACAU DOA.I. TARAUACA AGUA PRETA/IMARI A.I.ACIMA A.I. JUMA HUMAITA A.I. KULINA ACURAWA A.I. CAITITU CRUZEIRO DO SUL A.I. KULINA MEDIO JURUA A.I. TIMBAUBA A.I. S.PEDRO A.I. TENHARIN REDENCAO A.I. RECREIO I A.I. KAMPINAS/KATUKINA DO SEPATINI TRANZAMAZONICA A.I. KATUKINA/KAXINAWAA.I.PENERI/TACAQUIRI A.I.TUMIAA.I.ALTO SEPATINI A.I. KRAOLANDIA A.I. ATIKUM RECIFE A.I. LIBERDADE A.I. KAXINAWAFEIJO IG. DO GAUCHO A.I.SEREUINI MARIENE A.I. JACAREUBA/KATAWIXI A.I. TENHARIN/IG. PRETO A.I. CAYABI A.I. MARAMANDUBA A.I. TRUKA A.I. JAMINAWA IG. PRETO A.I. KAXINAWA COLONIA PE A.I. XUCURU A.I. RIO GREGORIO BOCA DO ACRE A.I. CIRIQUIQUI PORTO VELHO A.I. CAYABI (Gleba sul) A.I. MENKRAGNOTI A.I. RIOZINHO DA LIBERDADE A.I. IGARAPE ANJO A.I. IG. CAPANA A.I.CAMUCUA A.I. KARAJA SANTANA DO ARAGUAIA A.I. KAMBIWA A.I. KAPINAWA A.I. BOCA DO ACRE A.I. RIO MERURE A.I. NOVA RODELAS A.I. JAMINAWA-ARARA AC A.I. KAXARARI A.I. ARIKEM (CACH.SERINGAL) ARARA DO (RIACHO DO BENTO) GARANHUNS A.I. KAMPA DO RIO AMONEA A.I. KAXINAWA NOVA OLINDA A.I. KARITIANA BEIRADAO A.I.PANKARARU A.I. PIRIRICURA A.I. ESCONDIDO A.I. WASSU-COCAL A.I. XERENTE BREJO DO BURGO A.I. JERIPANCOH A.I. XUCURU/KARIRI A.I. ALTO RIO PURUS A.I. KARIPUNA RO A.I. PANKARARE A.I. MATA DA CAFURNA RIO BRANCO A.I. RIO CANDEIAS PAULO AFONSO A.I. FAZENDA DO CANTO A.I. KAXINAWA DO RIO BREU A.I. KULINA (IG. DO PAU) A.I. CINTA LARGA (RIO PRETO) A.I. FUNIL A.I. XOCO DA ILHA DE SAO PEDRO AL MACEIO A.I. PRAIA DO CARAPANA A.I. ZORO A.I. CAPOTO/JARINA A.I. CAICARA A.I. TINGUI-BOTO A.I. KAXINAWA DO RIO JORDAO A.I. RIBEIRAO A.I. IGARAPE LOURDES A.I. ARIPUANA A.I. JAPUIRA A.I. KARIRI-XOCO A.I. ARIKEM A.I. CARAPOTO A.I. KAMPA DO RIO ENVIRA A.I. IGARAPE LAGE A.I. RIO DOS PEIXES A.I. TAPIRAPE KARAJA A.I. BOTO VELHO A.I. MASSACARA A.I. MAMOADATE GUAJARA-MIRIM A.I. URUBU A.I. KAXINAWA DO RIO HUMAITA A.I. RIO OCAIA A.I. KARIPUNA RIO FORMOSO A.I. SERRA SE A.I. KULINA DO RIO ENVIRA A.I. CABECEIRA DO RIO ACRE A.I. SAO DOMINGOS A.I. KIRIRI A.I. XINANE A.I. APIAKA/KAYABI P.Q.I DO ARAGUAIA TO ARACAJU A.I. URU-EU-WAU-WAU P.Q.I. ARIPUANA A.I. ERIKPATSA A.I. PAACA NOVAS A.I. SETECACOAL DE SETEMBRO SAO FELIX BA ADR: ARAGUAIA A.I. MACURAP A.I. ENAWENE-NAWE GURUPI A.I. SAGARANA A.I. RIO GUAPORE A.I. PAUMELENHOS A.I. RIO BRANCO A.I. PARINTINTINS A.I. MENKU A.I. JABUTI (QUINTAO) A.I. MIQUELENHOS A.I. ROOSEVELT A.I. TUBARAO LATUNDE A.I. BARRA A.I. IBOTIRAMA (FAZ. MORRINHOS) A.I. POSTO FISCAL A.I. MASSACO P.Q.I. DO XINGU A.I. TIRECATINGA A.I. ARUA I (RIO COLORADO) A.I. ARUA II (CACH. PAULO SALDANHA) A.I. RIO MEQUENSVILHENA A.I. NAMBK KWARA A.I. IRANTXE MT A.I. ARUA III (RIO TEREBITO) A.I. PIRINEUS DE SOUZA

A.I. VARGEM ALEGRE A.I. MARECHAL A.I. UTIARITI RONDON A.I. PIMENTEL BARBOSA

A.I. SANTANA A.I. AVA-CANOEIRO A.I. PARESI ESTACAO RONDON A.I. VALE DO GUAPORE A.I. DO RIO FORMOSO A.I. AREOES A.I. FAZ. BAHIANA A.I. PEQUIZAL A.I. BAKAIRI A.I. TAIHANTESU TANGARA DA SERRA A.I. PARABURE A.I. JUININHA A.I. KARAJA/ARUANA A.I. ESTIVADINHO A.I. UMUTINA A.I. SARARE A.I. FIGUEIRAS A.I. SAO MARCOS A.I. CARRETAO A.I. XAKRIABA CUIABAA.I. SANGRADOURO VOLTA GRANDE A.I. MERURE A.I. LAGO GRANDE A.I. CARAMURU/PARAGUASSU BARRA DO GARCAS DF A.I. LUIZA DO VALE A.I. JARUDORE RONDONOPOLIS GO A.I. MATA MEDONHA A.I. TADARIMANA GOIANIA A.I. TEREZA CRISTINA A.I. COROA VERMELHA A.I. PERIGARA A.I. IMBIRIBA

EUNAPOLIS A.I. BARRA VELHA A.I. PRADINHO A.I. MAXACALI A.I. AGUAS BELAS A.I. GERIPACO

MG A.I. CAMBA GOV. VALADARES A.I. FAZENDA GUARANI A.I. KRENAK A.I. LALIMA A.I. CACHOEIRINHA ES A.I. PILA DE REBUA A.I. TAUNAY/IPEGUE BELO HORIZONTE A.I. AGUA LIMPA A.I. COMBOIOS MS A.I. PAU BRASIL A.I. KADIWEUS A.I. LIMAO VERDE A.I. CAEIRAS VELHA A.I. BURITI A.I. ALDEINHA A.I. OFAYE-XAVANTE VITORIA A.I. IGUAICURU A.I. BURITIZINHO A.I. NIOAQUE

A.I. ICATU A.I. DOURADOS A.I. SUCURI A.I. VANUIRE A.I. PIRACUA A.I. PANAMBI A.I. ARARIBA A.I. PANAMBIZINHO A.I. GUAIMBE SP A.I. CAMPESTRE A.I. RANCHO JACARE A.I. CERRO MANGARATU A.I. CAARAPO BAURU A.I. LIMA CAMPO A.I. JARARA RJ A.I. GUASUTI AMAMBAI A.I. TAGUAPERI A.I. JAGUARI A.I. AMAMBAI A.I. JAGUAPIRE A.I. LARANJINHA A.I. GUARANI-BRACUI A.I. AMAMBAI (ALDEIA LIMAO VERDE) A.I. PINHAUZINHO A.I. SETE CERROS A.I. SASSORO RIO DE JANEIRO A.I. CERRITO LONDRINA A.I. BARAO DE ANTONINA A.I. JARAGUA A.I. PIRAJUI A.I. APUCARANA A.I. GUARANI DO KRUCUTU A.I. GUARANI-ALDEIA ARAPONGA/PATRIMONIO A.I. TAKUARATY/YVYKUARUSU A.I. PORTO LINDO A.I. SAO JERONIMO A.I. BOA VISTA DO SERRAO DO PROMIRIM A.I. TIBAGY A.I. GUARANI DA BARRAGEM A.I. QUEIMADAS A.I. RIO BRANCO A.I. GUARANI DO A.I. PERUIBES RIBEIRAO VIEIRA A.I. IVAI A.I. SERRA DO ITATINS OCEANO ATLANTI PR A.I. FAXINAL A.I. AVA-GUARANI A.I. MARRECAS A.I. RIO DAS COBRAS GUARAPUAVA CURITIBA A.I. RIO AREIA A.I. ILHA DA COTINGA A.I. MANGUEIRINHA

A.I. TOLDO IMBU A.I. RIO DOS PARDOS A.I. PALMAS A.I. IBIRAMA A.I. XAPECO A.I. RIO DA VARZEA CHAPECO A.I. TOLDO CHIBANGUE A.I. PINHAL/NOVA TEUTONIA A.I. KAINGANG DE IRAI A.I. VOTOURO A.I. GUARITA A.I. NONOAI A.I. GUARANI VOTOURO SC A.I. CACIQUE DOBLE FLORIANOPOLIS A.I. INHACORA A.I. LIGEIRO A.I. MORRO DOS CAVALOS

A.I. CARRETEIRO - PASSO FUNDO FONTE: FUNDACAO NACIONAL, DO INDIO - FUNAI AGO/92

A.I. BORBOLETA SITUACAO, DAS AREAS A.I. IBICUI INDIGENAS A.I. JAGUARIZINHO A.I. GUARANI DE A.I. IMBAA RS BARRA DO OURO PORTO ALEGRE A IDENTIFICAR A.I. CANTA GALO A.I. IRAPUA A.I. CAPIVARI A.I. TAPES IDENTIFICADA A.I. PACHECA

LEGENDA LOCALIZACAO, DAS AREAS INDIGENAS DEMARCADA A.I. - AREA INDIGENA 2 PQI - PARQUE INDIGENA 60 Esc 1:5.500.000 REGULARIZADA - ADMINISTRACAO REGIONAL, 42 AUTOR EDITOR DATA 54 ARQUIVO 48 Adelino Set/92 i153.MP473 Figure 3: Municipal Districts of Brazil Figure 2: This is the same map from Figure 1, but the prim- itives were drawn in the order in which they were retrieved from the R-tree. Looking at Table 1 we can make some important ob- servations. The last three data sets, which are the Municipal with the objects’ geometry. Furthermore, we implemented Districts, the Asian Continent, and the Madureira Build- an algorithm based on hash files to store uniquely each at- ings, are large in size. However, in terms of diversity of tribute value in the attribute table. That is, the same set of attribute and primitive types they are very simple, being attributes will never be stored more than once in the file, composed just of black polylines or polygons. On the other thus yielding small attribute tables. hand, the map in Figure 1 is small, but it has many types of attributes and primitives. It is also important to notice that the Madureira Buildings data set has a very small average 6 Experiments of vertices per polygon. For testing the performance of our method we have de- As far as the size of the files is concerned, note that signed two sets of experiments. The first one aims at test- in the CGM file format used here the point coordinates are ing the clipping capability; To archieve that, we zoom in stored in a short integer type that uses only 2 bytes. Our the data several times. The second set seeks to test the mul- format stores the same data in a 32-bit floating point, thus tiresolution feature of our approach. allowing greater precision. For all the experiments we had to define which part From Table 1, we can observe that the size of our for- of the figure (window) would be shown in the visualization mat is more than twice as large as the CGM file. The main surface. To avoid window system interference in our mea- reason for this difference is the extra memory required for surements the visualization surface chosen was a file in the storing the R-tree and V-tree data structures. Note, how- CGM format. For comparison with conventional vector file ever, that our scheme uses secondary memory, and the main format we have also tested the use of the CGM file to pro- focus here is to obtain fast visualization time. duce the same picture. That is, we read and write the same CGM file. 6.2 Results Zoom in these experiments was performed by incremen- 6.1 Data

tally scaling the data by a factor of 1.1, and displaying them

¢ 5¼¼ The experiments were performed with four different carto- on a viewing area of dimensions 7¼¼ .Thisway, graphic data, which are illustrated in Figures 1, 3, 4, and 5. the part of the data that is visible becomes smaller at each In Table 1 we list some characteristics of these data. The step. Each experiment was computed two times, one order-

order of the tree-shaped data structures used by Drops for ing and the other without ordering the graphical primitives.

; 5¼µ

storing the experimental data sets were of ´¾¼ for the In Figures 6, 7, 8, and 9 we plot the elapsed time versus the

; ½¼µ R-trees and of ´5 for the V-trees. percentage of the viewing area being displayed. Figure 4: Asia

(a) Complete Data (b) Zoom over a small area of the data

Figure 5: Madureira Buildings

Number Average of Number Size (Kb) Data of Vertices of CGM Drops Drops Objects per Polygonal Attributes without V-trees with V-trees Indian Areas 2243 111 31 829 1400 2060 Municipal Districts 16596 43 1 3025 6220 10884 Asia 9533 108 1 4174 8412 12840 Madureira Buildings 63062 8 1 2858 6264 9452

Table 1: Data Characteristics 0.8 4.5 CGM CGM Drops without sort Drops without sort Drops with sort Drops with sort 0.7 4

3.5 0.6

3 0.5

2.5 0.4

time (s) time (s) 2

0.3 1.5

0.2 1

0.1 0.5

0 0 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100 view area (%) view area (%)

Figure 6: Result of the scaling experiments on the Indian Figure 8: Result of the scaling experiments on the Asia Areas Map. Map.

4 5 CGM CGM Drops without sort Drops without sort Drops with sort 4.5 Drops with sort 3.5

4 3 3.5

2.5 3

2 2.5 time (s) time (s)

2 1.5

1.5 1 1

0.5 0.5

0 0 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100 view area (%) view area (%)

Figure 7: Result of the scaling experiments on the Munici- Figure 9: Result of the scaling experiments on the pal Districts Map. Madureira Buildings.

Through the graphs shown in Figures 6, 7, 8, and 9 if the display surface has a pixel size. To determine the

we notice that the ordering of the primitives, required to pixel size in the example shown below we have considered

¢ 5¼¼ maintain the original overlap order of the objects, does not a canvas with a resolution of 7¼¼ . significantly affect the drawing’s efficiency. As the win- Figures 10, 11, 12, and 13 show the elapse time versus dow size decreases (greater zoom) the use of our strategy the tolerance of the multiresolution scheme. This tolerance

becomes more relevant. Furthermore, when drawing the is represented in the upper horizontal axis as the number of

¢ 5¼¼ entire figure, the Drops system does not worsen the display pixels in the 7¼¼ resolution. That is, Drops draws time. The visualization time of the CGM file remains con- the pixels with the color assigned when the bounding box stant regardless of the fact that just a small part of the data becomes smaller than the tolerance. This is true for both is visible. It is also important to notice that the size of the the R-tree and the V-tree. The lower horizontal axis shows data did not considerably affect the results. a percentage of the tolerance window relative to the total The second set of experiments aims at testing the pro- drawing area. posed multiresolution scheme. In all examples shown be- From the graphs shown in Figures 10, 11, 12, and 13, low we have drawn a window containing all the data. Just we can observe significant performance improvements even like in the previous examples, we have also used here a for small tolerances (1 pixel). However, as the tolerances CGM file for our display surface to avoid window system increase the gains in performance do not increase propor- interference. Multi-resolution, however, has more meaning tionally. 5 0.8 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 5 6 CGM CGM R-tree mult. R-tree mult. V-trees mult. V-trees mult. R-tree and V-trees mult. 0.7 R-tree and V-trees mult. 4

0.6

0.5 3

0.4 time (s) time (s) 2 0.3

0.2 1

0.1

0 0 0 0.5 1 1.5 2 0 0.2 0.4 0.6 0.8 1 1.2 resolution (%) resolution (%)

Figure 10: Result of the multiresolution experiments on the Figure 13: Result of the multiresolution experiments on the Indian Areas Map. Madureira Buildings.

4 1 2 3 4 5 6 7 8 9 10 11 12 CGM Finally, Figures 14, 15, 16, and 17 show the combined R-tree mult. V-trees mult. 3.5 R-tree and V-trees mult. effect of multiresolution and zoom in the data sets. Note that, as expected, for large windows the multiresolution pre- 3 vails, and, conversely, for small windows (large zooms) the

2.5 clipping becomes more relevant.

0.8 2 CGM

time (s) Drops res. 0 Drops res. 1 0.7 Drops res. 2 1.5

0.6 1

0.5 0.5

0.4 0 0 0.5 1 1.5 2 time (s) resolution (%) 0.3

Figure 11: Result of the multiresolution experiments on the 0.2 Municipal Districts Map. 0.1

4.5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CGM 0 R-tree mult. 0 10 20 30 40 50 60 70 80 90 100 4 V-trees mult. view area (%) R-tree and V-trees mult. 3.5 Figure 14: Combined effects of zoom and multiresolution 3 for the Indian Areas Map.

2.5

time (s) 2 7 Conclusions 1.5 The results presented in the previous sections allow us some

1 general conclusions. First, the proposed method yields an efficient visual- 0.5 ization scheme for large and complex spatial data such as

0 0 0.5 1 1.5 2 maps. The fact that it uses secondary memory suggests the resolution (%) use of this strategy for figures in CD-ROMs. The main advantage of using the persistent storage Figure 12: Result of the multiresolution experiments on the subsystem to manage memory usage is the ability to re- Asia Map. trieve data from the secondary memory only on demand. 4 5 CGM CGM Drops res. 0 Drops res. 0 Drops res. 1 4.5 Drops res. 1 3.5 Drops res. 2 Drops res. 2

4 3 3.5

2.5 3

2 2.5 time (s) time (s)

2 1.5

1.5 1 1

0.5 0.5

0 0 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100 view area (%) view area (%)

Figure 15: Combined effects of zoom and multiresolution Figure 17: Combined effects of zoom and multiresolution for the Municipal Districts Map. for the Madureira Buildings.

4.5 CGM Drops res. 0 PROTEM/CC-GEOTEC project. TeCGraf is a Laboratory 4 Drops res. 1 Drops res. 2 mainly funded by PETROBRAS.

3.5

3 References

2.5 [1] D. H. Ballard. Strip trees: Hierarchical representation for curves. Communications of the ACM, 24(5):310– time (s) 2 321, 1981.

1.5 [2] Norbert Beckmann, Hans-Peter Kriegel, Ralf Schnei-

1 der, and Bernhard Seeger. The R£ -Tree: An Efficient

0.5 and Robust Access Method for Points and Rectangles. In Proceedings of the ACM SIGMOD Conference on 0 0 10 20 30 40 50 60 70 80 90 100 Management of Data, pages 322–332, May 1990. view area (%) [3] Thomas Brinkhoff, Hans-Peter Kriegel, Ralf Schnei- Figure 16: Combined effects of zoom and multiresolution der, and Bernhard Seeger. Multi-step processing of for the Asia Map. spatial joins. In Proceedings of the ACM SIGMOD Conference on Management of Data, pages 197–208, May 1994. This way the applications do not get extremely slow when the data does not fit into the main memory and the operating [4] O. G¨unther and E. Wong. The arc tree: an approxi- system starts to swap memory to disk. mation scheme to represent arbitrarily curved shapes. Second, the use of the Packed R-tree for indexing spa- Computer Vision, Graphics and Image Processing, tial data by their bounding boxes with the heuristics pre- 51(3):313–337, 1990. sented in [9] yields a good hierarchical structure for visu- alization. Groups of objects that are close together become [5] A. Guttman. R-trees: A dynamic index structure for adjacent in the R-tree. If they are outside the visualiza- spatial searching. In Proceedings of the ACM SIG- tion window they are not even retrieved from the secondary MOD Conference on Data Engineering, pages 47–56, memory, thus saving time that, otherwise, would be spent 1984. clipping them. [6] Paul Heckbert. Multiresolution surface modeling. In SIGGRAPH ’97, Course Notes n. 25, 1997. Acknowledgements [7] A. Hutflesz, H. Six, and P. Widmayer. The r-file: An We thank Newton C. Sanches for his contribution. This efficient access structure for proximity queries. In work was developed in TeCGraf/PUC-Rio and was partially Proceedings of the Sixth IEEE International Confer- funded by CAPES, by means of fellowships, and by the ence on Data Engeneering, pages 372–379, 1990. [8] ISO/IEC 8632:1992. Information Technology - Com- puter Graphics - Metafile for the Storage and Trans- fer of Picture Description Information, 1992. Part 1 - Functional Specification (ISO8632-1), Part 2 - Character Encoding (ISO8632-2), Part 3 - Binary En- coding (ISO8632-3), Part 4 - Clear Text Encoding (ISO8632-4). [9] I. Kamel and C. Faloutsos. On packing R-trees. In Proceedings of the 2nd International Conference on Information and Knowledges Management (CIKM- 93), pages 490–499, November 1993. [10] Maur´ıcio Riguette Mediano. OPS: Um subsitema ex- tens´ıvel e configur´avel de armazenamento de obje- tos persistentes. Technical Report MCC37/97, De- partamento de Inform´atica, Pontif´ıcia Universidade Cat´olica, Rio de Janeiro, 1997. [11] Maur´ıcio Riguette Mediano, Marco Antˆonio Casanova, and Marcelo Dreux. V-tree - a stor- age method for long vector data. In Proceedings of the 20th VLDB Conference, 1994. [12] J. Nievergelt, H. Hinterberguer, and K. C. Sevick. The grid file: An adaptable, symmetric multikey file structure. ACM Transactions on Database Systems, 9(1):38–71, March 1984. [13] J.A. Orenstein. Spatial query processing in an object- oriented database system. In Proceedings of the ACM SIGMOD Conference on Management of Data, pages 326–336, May 1986.

[14] Ralf Schneider and Hans-Peter Kriegel. The TR£ -tree: A New Representation of Polygonal Objects Support- ing Spatial Queries and Operations. In Proceedings of 7th Workshop on Computational Geometry, pages 507–518, 1991. [15] Timos Sellis, Nick Roussopoulos, and Christos

Faloutsos. The R· -Tree: A Dynamic Index for Multi- Dimensional Objects. In Proceedings of the 13th VLDB Conference, pages 507–518, September 1987. [16] H. Six and P. Widmayer. Spatial searching in geomet- ric databases. In Proceedings of the Fourth IEEE In- ternational Conference on Data Engeneering, pages 496–503, 1988. [17] Seth J. Teller. Visibility preprocessing for interactive walkthroughs. Computer Graphics, 25(4):61–69, July 1991. [18] Seth Jared Teller. Visibility Computations in Densely Occluded Polyhedral Environments. PhD thesis, Computer Science Department University of Califor- nia at Berkeley, 1992.