Eric W. Lehmer, Gail S. Lampinen, Mike C. McCoy, Dr. James F. Quinn

ICEMAP2 (Interactive California Environmental Management, Assessment, and Planning System Mark 2): A MapObjects based Internet Mapping Service

Abstract

ICEMAPS2 is a new Internet mapping service of the Information Center for the Environment. It is based on the new technology of MapObjects, and MapObjects Internet Map Server. ICEMAPS2 exceeds its predecessor, ICEMAPS (based on PERL and ArcInfo), in performance and functionality. The success implementation of a MapObjects based map server has cut development and maintenance time dramatically. Future versions of ICEMAPS will most probably be based on ODE ArcInfo technology.

Introduction

The Information Center for the Environment (ICE) at the University of California, Davis has developed a second-generation internet mapping service called ICEMAPS2 (Interactive California Environmental Management, Assessment, and Planning System Mark 2). ICEMAPS2 improves upon the widely popular ICEMAPS, the Information Center for the Environment�s original Internet mapping service. Maps served by ICEMAPS2 are based on the new technology of Environmental Systems Research Institute�s (Esri) MapObjects Internet Map Server. The Universal Resource Locator (URL) for ICEMAPS2 is:

http://endeavor.des.ucdavis.edu/icemaps2

ICEMAPS2 is a product of the California Rivers Assessment (CARA), one of the major projects of the Information Center for the Environment. The primary purpose of CARA, started in 1992 by the California State Resources Agency, is to develop an information system that can provide a comprehensive inventory and evaluation of California�s river resources and to make this information easily accessible to decision-makers and the general public. CARA�s web site is at:

http://endeavor.des.ucdavis.edu/cara

The Information Center for the Environment is a cooperative effort of environmental scientists at the University of California, Davis and collaborators at over thirty private, state, federal, and international organizations interested in environmental protection. More information about the Center can be obtained over the World Wide Web (WWW) at:

http://ice.ucdavis.edu

Background

The Information Center for the Environment�s first Internet mapping service, called ICEMAPS (Beardsley 1996), has been operational since early 1996, and was one of the first on-line mapping systems based on Esri software. ICEMAPS used the PERL scripting language to create a web user interface, as well as to spawn an ArcInfo session in order to create map images. ICEMAPS primary mission was to enable environmental policy managers to visualize the vast storehouse of geographical and environmental information for the state of California. ICEMAPS was a display only system, with no way of querying the underlying data. Performance was limited by the need to spawn ArcInfo for every map request, as well as the need to use an external program to convert the resultant Encapsulated PostScript (EPS) file into a Graphics Interchange Format (gif) image. ICEMAPS final product was a complete map composition that could be printed by the user. The turnaround for this final product was several minutes when run on a high powered Silicon Graphics UNIX server. ICEMAPS has served a useful purpose for our clients. Unfortunately, because of its complex PERL coding, enhancing the user interface or adding more functionality would require a complete rewrite of the code. Additionally, integration of new map layers into the system required custom coding in both PERL and AML. For reasons of increased performance and functionality, the second-generation map server, ICEMAPS2, is based on MapObjects technology.

Description of ICEMAPS2 Internet Mapping Service

ICEMAPS2 is an interactive display and query system that takes advantage of the latest advances in Internet client/server technology. It allows Internet users with Netscape Navigator 4.0, or Microsoft Internet Explorer 4.0, and an Internet connection to interface with a variety of California data sets. Currently, there are over thirty data sets available on the service, with many more planned for inclusion. These data sets range from large, statewide data sets for regional interest to small, localized data sets for narrower focus.

The interface takes advantage of the latest Internet browsers� built in functionality to build and request map and database queries from the MapObjects Internet Map Server. The mapping service is built on Hyper Text Markup Language (HTML) "frames", with map controls within one frame, and the map display within a separate frame. Additional controls and information are displayed by changing the source of the HTML frames, or by spawning new Internet browser windows. Interaction between the various HTML frames and separate browser windows is accomplished with the use of JavaScript, the main scripting language used by Internet browsers. Navigational functionality includes zooming in and out, panning, zooming to a feature of one of several layers, and turning layers on and off. Data retrieval functionality includes identifying layer features, browsing all data in the current map window, and performing queries against several data sets. A legend of the currently drawn layers can be rendered and printed at the user�s request.

Beyond panning and zooming, the user may perform queries in a number of ways. First, the user can display information about all layers in the current map window. This will bring up an additional Internet browser window with a list of all layers in the map window and under each layer name a drop-down list giving pertinent information from up to six database fields. For instance, if lakes and state highways were in the map window, the drop-down list under lakes would list the names of lakes and the drop-down list under state highways would list highway numbers found within the view. If any individual item is selected from the dropdown list, i.e. "name = Mono" under lakes, a new browser window will appear with information from all fields in the coverage. Secondly, the user may choose to obtain information about a single feature. The user will be prompted to select a layer to identify from, then the user is prompted to click on the feature. A new Internet browser window will appear with the name of the coverage and information from all fields in the coverage for that particular feature. Third, a user may build queries for particular data sets. Drop-down lists assist the user in building the selection expression. Finally, metadata for any layer is available by clicking on the layer�s name. A new Internet browser window is spawned which gives a brief overview of the data and points to additional, more detailed metadata.

The number of data layers available to the user depends on their current map extent. Smaller regional or local data sets become available to the user as they zoom farther in on the state. This gives a forum for local government or environmental group data, while still providing data for the entire state.

Although ICEMAPS2 includes far more functionality than the original ICEMAPS, and runs on Windows NT instead of UNIX, its response time is a fraction that of the original.

Our aim in developing ICEMAPS2 is to create a free interface into gigabytes of geographical and environmental data for the state of California, without the client investing time and money in GIS infrastructure, and the training necessary to use that infrastructure. The Internet browser has become the de facto standard of network computing, and is the ideal client application for mapping services. As a familiar and ubiquitous tool, the web browser enables us to serve information to decision-makers, that they would have difficulty acquiring any other way.

ICEMAPS2 users include land-use planners and environmental policy managers within local, state, and federal government, as well as the general public. Users have stressed that ICEMAPS2 lets them focus in on an area of interest within the state and quickly create a visual representation of current data known for that area. This can be an aid in decision-making processes.

Technology Used

ICEMAPS2 uses a combination of MapObjects, MabObjects Internet Map Server, JavaScript, and HTML to provide a consistent user interface and to deliver map images to web browser clients. The web interface consists of five HTML frames. The control widgets for panning, zooming, etc., are contained within one frame, while the map image returned by the server is placed into a separate frame. One frame is used for sub-options of controls, and another is used for status messages. Additional browser windows are spawned when needed for additional user interface controls, or to display tabular information. Much of the control of the user interface is done on the client side using JavaScript. Each of the map control widgets has a JavaScript function associated with it. As an example, when a user presses on the "pan" button, the browser runs a JavaScript function that changes hidden form variables in the frame with the map image, and creates new HTML source for the status frame telling the user to click on the map image. When the user clicks on the map image, which is an image input form widget, a JavaScript function concatenates the hidden form variables into the query string of a Universal Resource Location (URL) and then submits the request to the MapObjects Internet Map Server. On the server side the query string received contains the pan command, as well as the map extent, the point on the image that the user clicked, and a list of the map layers to be drawn. The Microsoft Visual Basic application converts the user defined point into map units and determines the new map extent. The map extent and map layer list are then fed into a HTML creation sub-routine, that sends back to the web browser new source for the map image frame, which includes updated hidden form variables. New source is also generated for the other frames by embedding JavaScript code in the map image frame. This complex JavaScript symbiosis between the HTML frames leads to greater functionality, without committing more resources from the map server.

The use of a professional developer tool, in this case Microsoft Visual Basic 5.0, allows ICEMAPS2 code to be much more modular and extensible. Each request is handed off to a separate sub-routine within the application. Improved sub-routines can easily be spliced into the application, without rewriting the whole application. Standardized functions and sub-routines, such image creation, can be shared among many routines � saving repetitive hard coding.

ICEMAPS2 has also been designed to allow for the rapid addition of new map layers. A database table stores information about the map layers used within ICEMAPS2. This table is read info the application when it is started. Information stored includes the path to the layer�s geodataset, the name of the layer, how the layer will be rendered, and all other variables that determine the layer�s behavior within the application. To add a new layer to ICEMAPS2 only requires adding an additional record to this table, and restarting the application.

Pros and Cons of MapObjects Internet Map Server

Many technical barriers were encountered in developing ICEMAPS2, some resulting from bugs in early versions of MapObjects and some resulting from limitations of the MabObjects product, but also MabObjects solved many previously insurmountable barriers. Some of the major benefits of using MapObjects as a map server are its fast performance in display and query, cursor access to tabular information, and object oriented programming model.

Spatially indexed map layers with hundreds of thousands of records are drawn within several seconds using MapObjects. Performance is also outstanding for a color shaded relief image of the entire state, a 200-megabyte image, which draws within a second or two. Spatial and tabular searches are also fast within MapObjects, with the only exception being spatial searches within large polygon layers. The ability to create record set objects similar to SQL cursors with MapObjects makes retrieving tabular information much easier. Record sets allow for standardized access to tabular information within map layers, which can then be returned to the client using HTML tables. The object model of MapObjects makes server development much easier by compressing hard coding routines such as panning and zooming into a few lines of simple code. The object model also makes it easy to transfer code between different applications. MapObjects coupled with the power and ease of Microsoft Visual Basic make applications more flexible and less time consuming to develop.

Some of the biggest limitations of MapObjects are problems with color rendering, image artifacts, modest INFO support, lack of dynamic legend creation, large random access memory (RAM) use, lack of ArcInfo GRID data type support, and inability to create ordered SQL cursors from ArcInfo map layers.

Whenever MapObjects creates a bitmap of one of its maps it dithers the output color to the closest system color. This can produce undesirable colors when representing maps with many classifications. MapObjects also creates spurious color banding when very large color images are drawn. INFO table support was added along with support for ArcInfo coverages. Unfortunately, access is limited to feature attribute tables. The current version does not access free INFO tables. As a result, applications must use other table formats, such as dBASEIV files, as free or relate tables. Legends must be created from scratch, as MapObjects has no support for them. Ten pages of code are used in ICEMAPS2 to create a simple legend of the currently visible layers. Most of that is positioning boxes and text on the page. Some objects similar to legend routines in ArcPlot would be very beneficial. MapObjects is most effective with smaller data sets. Random Access Memory (RAM) usage steps up dramatically as larger map layers are drawn or queried. Drawing a thirty thousand polygon coverage can take as much as 100-megabytes of RAM. Having several large data sets at the same time can bring the map server to its knees. MapObjects support for the GRID data type would be particularly valuable for applications like ICEMAPS2. To display raster information it must be converted to an image, which means it can not be queried. It would be valuable to be able to retrieve GRID values using MapObjects. Currently there is no support for sorting record sets within MapObjects, with the results that tabular information retrieved from map layers can not be modified. The only way to sort a unique list of item values is to add the contents of a cursor column into a Microsoft Visual Basic listbox.

Despite its shortcomings, the current MapObjects Internet Map Server product has proven that it can deliver complex map images quickly and efficiently. ICEMAPS2 will continue to rely on the MapObjects technology to provide a useful Internet mapping service, and will take advantage of improvements in any future releases of the MapObjects code.


Future Directions

The successful implementation of a robust MapObjects Internet Map Server has lead the Information Center for the Environment to explore new ways of using this technology. ICEMAPS2 technology will be spun off to create an Internet mapping service for the Sierra-Nevada Ecosystem Project (SNEP) - a multi-million dollar project, completed in 1997, which evaluated ecological and economic priorities for the Sierra-Nevada range. It will be have a similar look and feel of ICEMAPS2, but will have data sets focused solely on the SNEP study area. This project will be an opportunity to improve on ICEMAPS2 code and to add new functionality. ICEMAPS2 will also be used to geo-reference project locations for inclusion into another of the Information Center for the Environment�s projects, the Natural Resources Project Inventory (NRPI) � a statewide registry of projects and programs for environmental management and protection. Points of contact within participating organizations will use ICEMAPS2 to find unique features to associate with the location of the project, and then they will relay that information to NRPI. This will greatly improve location information contained within this database.

Some technical improvements are also in development for ICEMAPS2. The original ICEMAPS created postscript files that could be downloaded and printed. Printing results from ICEMAPS2 is dependent on the browser�s ability to print HTML documents. Plans include adding a printing routine that will create a printable document for the user, which includes the current map window as well as a legend of the current map layers.

Many more data sets will be added to the ICEMAPS2 system. We are actively engaged in promoting localized, highly detailed environmental data for the state. We also intend to closely integrate ICEMAPS2 into the rest of our World Wide Web (WWW) site, and many state and federal government data sets (see http://ceres.ca.gov). Some of the data layers used in ICEMAPS2 are for projects that have dynamic tabular web databases. Cross-linking these databases with spatial visualizations from ICEMAPS2 will bring an added dimension to our web site.

One of the biggest objectives for improvements to ICEMAPS2 is to allow the user to submit a query on any of the data sets available on the server. Opening up the service to any query will allow users to access all the power of the information. This will make ICEMAPS2 more like a visual "search engine", in which you submit a query and it returns a map image or a database cursor. This flexibility and power will make ICEMAPS2 more attractive as a map server for other, closely associated web sites.

All these improvements will put greater stress on system resources of the map server backend. Some queries may take as much as a minute to complete against large data sets. Replication of the application will help to some degree, as well as clustering of map servers. Another idea for improving overall performance is to separate out the navigational routines from the query routines, and put them in separate applications on separate servers. Most users expect navigation to take only a few seconds at most, but are willing to wait longer for query results. By serving navigation in a separate application, these navigational users will be isolated from users submitting massive database queries. This technique could also be applied to users requesting printable map compositions, which could be time consuming as well. The Information Center for the Environment is part of an initiative, headed by the San Diego Super-computing Center, to develop these kinds of capabilities for larger data warehouses.

All the functionality we have planned for ICEMAPS2 may exceed the capabilities of MapObjects on a PC server. MapObjects was designed as a lightweight addition of dynamic maps to desktop applications. We are hoping to scale-up ICEMAPS2 to a bigger and better server back-end, ArcInfo, using the Open Development Environment (ODE) tools. ODE will give us access to all of ArcInfo�s functionality, as the original ICEMAPS did. It is clear that ArcInfo will be the map server back-end of the future, yet MapObjects will probably remain a useful tool for quick display of data.

Conclusions

The Information Center for the Environment has made a successful migration from a first-generation ArcInfo Internet Map Server to a second-generation MapObjects Internet Map Server. MapObjects not only improved on map display performance, but also added new functionality and improved ease of programming for Internet Map Servers. Many hurdles were encountered in this transition, mostly due to limitations of early releases of the MapObjects product. ICEMAPS2, while a successful and robust application, pushes the limits of the current version of MapObjects code. The current MapObjects is well suited for lightweight applications, where quick display of maps is desired. ODE ArcInfo appears to have more potential as a heavyweight map query engine, and will be the target platform for future iterations of ICEMAPS.

Acknowledgements

The authors wish to thank the creators of the original ICEMAPS Internet map server, Karen Beardsley and Harvey Chinn, who laid the foundation upon which ICEMAPS2 stands.

The work described here was supported by the California Resources Agency and the U.S. EPA (R819658) Center for Ecological Health Research at UC Davis. Although the information in this document has been funded in part by the United States Environmental Protection Agency, it may not necessarily reflect the views of these Agencies and no official endorsement should be inferred.

References

Beardsley, Karen and James F. Quinn. 1996. Information Center for the Environment: Public Access to Natural Resource Data Using an Interactive Query System on the World Wide Web. Redlands, CA: Proceedings of the 1996 Esri User Conference.

Eric W. Lehmer
GIS Engineer
Information Center for the Environment
University of California, Davis
Davis, CA 95616
(530) 7520532
(530) 7523350 FAX
eric@ice.ucdavis.edu

Gail S. Lampinen
GIS Programmer/Analyst
Information Center for the Environment
University of California, Davis
Davis, CA 95616
(530) 7520532
(530) 7523350 FAX
lampinen@umext.umass.edu

Mike C. McCoy
Academic Administrator
Information Center for the Environment
University of California, Davis
Davis, CA 95616
(530) 7549171
(530) 7523350 FAX
mcmccoy@ucdavis.edu

Dr. James F. Quinn
Director, Information Center for the Environment
Information Center for the Environment
University of California, Davis
Davis, CA 95616
(530) 7528027
(530) 7523350 FAX
jfquinn@ucdavis.edu