Ji Yang (Ji.Yang@oracle.com)
Liujian Qian (Lj.Qian@oracle.com)
Jayant Sharma (Jayant.Sharma@oracle.com)
Spatial Products, Server Technology
1 Oracle Drive
Nashua, NH 03062
Geographic data has traditionally been managed in proprietary-formatted files and displayed using special GIS applications. Oracle Database 10g provides an open and standard-based geographic data management solution via either Oracle Spatial or Locator. Users can load all types of geometric data into a database, create spatial indexes, and issue spatial queries all through SQL. Written purely in Java and run in a J2EE environment, MapViewer provides web application developers a versatile means to integrate and visualize business data with maps. MapViewer uses the basic capability included with Oracle10g (delivered via either Oracle Spatial or Locator) to manage geographic mapping data. MapViewer hides the complexity of spatial data queries and the cartographic rendering process from application developers.
The services provided by MapViewer are accessed through a flexible and powerful XML-based API over HTTP protocol. Using this API, an application developer can direct MapViewer to fetch spatial data and generate maps from any Oracle database instance. The map metadata, which is used to control visual map characteristics, is stored in database tables. It is also possible to incorporate dynamically obtained geospatial data, such as customer locations, and plot these on top of a base map via XML API.
MapViewer can render maps into various raster image formats such as GIF, JPEG and PNG. Raster images fit well in most web mapping applications that only require basic client side interaction such as zooming and panning. But the static characteristic of raster image limits its usage in web mapping applications that complicated client side interactivity is desired, where SVG is getting a lot of attention. Compared to raster images, SVG's vector graphics combined with ebedded scripting make providing rich map interactivity much more easier and efficient. From the next new release, MapViewer will be able to render map images in SVG, and developers will then be able to take advantage of benefits provided by SVG in developing highly interactive web mapping applications.
In the actual implementation, a new SVG rendering module is added to the MapViewer rendering engine. In addition to standard vetor map graphical features, the SVG rendering module also provides the following user interactivity enhancement features in SVG.
· Info tips
Customizable text information associated with the graphical features can be displayed dynamically when the user moves mouse over the features in the map.
· Map navigation supports
· Dynamic label adjustment
The size and positioning of map labels can be automatically adjusted to optimize the visual appearance when the map is zoomed in or out.
· Customizable mouse click event handling
· Map layer control
In this paper, we describe the overall architecture of the MapViewer and discuss the SVG rendering module in detail. In addition, we also describe the lessons learned, and future enhancements planned.