SandView
a View document object for MapObjectsÔ

ArcView’sÔ namesake View documents are a compact, powerful user-interface for geodata browsing. We have developed a polymorphic View-like object that surrounds a mapping OCX/ActiveX control (MapObjects, MapObjects LT) with the obvious features and hidden infrastructure of a View. Licensing issues are avoided because the map control instance is simply a property of SandView and the two parts co-exist symbiotically.

SandView emulates many of the ArcView/Avenue View objects and properties. It also goes beyond with more Table of Contents (TOC) display options, an optional tabbed Panel where users can set and label regions of interest, and colored Themes, Classifications, and View background. In order to give the applications developer maximum flexibility, SandView provides most user-interface functionality through popup context menus. For instance, the user can Add, Delete, and Clone themes with the right mouse button. SandView includes virtual Map, Layer, and Symbol objects in order to get, put, and serialize/deserialize pieces of the MapObjects object model. This lets the developer copy and move objects, and preserve state.

SandView was developed using Visual Basic (VB) 4 and 5. This approach had benefits and a number of costs. VB’s limited relationship between controls and classes required some awkward object/control instantiation and termination. Since the TOC is a dynamic hierarchy that grows and shrinks, Reference Counts had to be carefully managed in order to control object lifespans. If we had the task to do over again we would still use VB, however. We will discuss the SandView design process, the object model, and what we learned in the development phase.


Additional information is at: http://www.sandia.gov/gis/tech/sandview/Default.htm


John H. Ganter
Member of the Technical Staff / GIS Specialist
Sandia National Laboratories
POB 5800, M/S 1138
Albuquerque, New Mexico, USA 87185-1138
Telephone: 505-844-1304
FAX: 505-284-3850
Internet: jganter@sandia.gov

SAND 96-2941A. This work was supported by the United States Department of Energy under Contract DE-AC04-94AL85000. Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy.