HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Recently I had the opportunity to work with Sedona Geoservices' SpatialVision, an end-user application for performing geospatial data querying, data visualization and analysis. SpatialVision is designed to help your organization harvest information from your data using a geospatial focus. Geospatial analysis can be defined as the process of comparing your relational data to location data - for example, where your customers are located on a map. Sedona has targeted applications as diverse as call center management, sales operations and even service dispatching as candidates for such analysis. The company estimates that over 80% of preexisting data archives have at least a portion of their data in an inherently spatial format.

The equipment I used for this evaluation was a Dell Pentium II with 200 MHz, 64 MB RAM, 4 gigabyte disk drive, Windows NT 4.0 (Service Pack 4), ViewSonic 15-inch SVGA monitor, 3COM Etherlink XL Adapter and 8x CD-ROM.

Installation and Configuration
You can download SpatialVision from the Sedona Geoservices Web site, but I used a CD-ROM to install it. SpatialVision works only with the Oracle Spatial Cartridge, and you'll need access to an Oracle database with the cartridge up and running. Sedona provides Internet access to their own demonstration database, however, so you can test the product without having your own Oracle database installed locally.

SpatialVision is a 100% Pure Java application that requires the JRE 1.2 environment to run. (Sedona provides the install kit for this version of the JRE as a link from the installation panel.) Once you have the JRE installed, you can use a second link from the main panel to install the product itself, which takes about five minutes and 10 megabytes of disk space. SpatialVision comes equipped with a series of manuals in Adobe PDF format, but the install program doesn't add them to the system menu for you. While this isn't a big deal, the product is targeted to end users, who may not be as comfortable searching for document files as a software developer would be.

Using SpatialVision
Once I installed the product, I opened up the Adobe tutorial, started SpatialVision and began playing around. Since I don't know much about geospatial data analysis, I relied on the tutorial for direction. The examples and images were sufficiently detailed and I found I could follow along reasonably well. I suspect that a user familiar with geospatial data analysis would find the tutorial even easier to use. I connected to my local Oracle database without difficulty via the database configuration panel, using a thin-client JDBC driver.

SpatialVision allows you to create groups of database connections and even to join data across different Oracle databases if you wish. Whatever information you need to connect to your database can be found on the configuration panel. The only parameter that may seem unfamiliar is the requirement to enter the Oracle System ID (SID) as the database value, which may be confusing to those who are used to providing Oracle TNSNAMES values. I was able to connect to my local Oracle database and select some data from my sample college application without difficulty. But I was stopped short of analyzing any of my data in my local database because none of it was stored in a geospatial format. Although the data in my preexisting Oracle database contains location information such as phone numbers and street addresses, SpatialVision can't analyze this data directly. To make use of SpatialVision you'll need to tie this data to a location on Earth through a process called geocoding. Geocoded addresses are stored in the Oracle Spatial Data cartridge, and your preexisting data is linked to these geocoded entries as attributes. It makes perfect sense when you think about it, but I didn't even consider this aspect of the problem when I started playing with SpatialVision. If you're already using Oracle's Spatial Data cartridge, this is unlikely to be a problem.

However, if your data isn't already encoded, you won't have much success in using SpatialVision. Unfortunately, the product doesn't provide tools to assist you with the geocoding effort, but Sedona does offer consulting services to assist you. Sedona's marketing manager told me they plan to provide these types of utilities for a future release of the product. In the meantime, you'll need to work with Sedona directly.

At this point I thought I was going to be writing the shortest product review in history since I had no data to work with. I was pleasantly surprised, however, to find that Sedona makes their demo database available across the Web as part of the installation process. I was able to open a connection over the Internet using the Oracle thin-client JDBC driver to a Sedona database on a public server. I recommend a higher bandwidth connection than the 28.8 speed that I used for my remote testing. Nevertheless, despite the low bandwidth, I was able to connect to the Sedona database of information about locations in eastern Pennsylvania. SpatialVision includes a query-composer and editor for building queries against your database, and you'll find the panels easy to use for generating SQL queries against the database. On the query panel you can select both fields as well as display the range of data for a given field. For example, I selected the "restaurants" table and then searched for a list of restaurant names that I could use in a query for locating places to eat in eastern Pennsylvania. Part of the power of SpatialVision is its ability to provide extra geospatial intelligence in the formulation of queries. For example, I was able to search for all Burger King restaurants in the borough of Norristown.

You can also search for data using specialized geospatial values such as "within a radius of 50 miles," and this is the real power of SpatialVision. Information in your organization can be mapped back to geocoded locations and then also used in the formulation of queries.

I can easily imagine using the product to find all customers that have ordered "blue widgets" within a 20-mile radius of Easton, Pennsylvania. Once you've located your data, SpatialVision can display it on a map and you're free to add your own images and symbols to the resulting display. SpatialVision can be deployed using an appletviewer, or you can embed the product inside a Web page for even greater flexibility. I found the data to be very usable over a 28.8 connection, so it's feasible to deploy SpatialVision to your organization over an extranet. However, given the volume of data you're likely to access, I'd strongly recommend a higher bandwidth connection for use with SpatialVision.

I'm impressed with Sedona's efforts to provide a completely Java-based application for end users, and I like the geospatial data analysis concept. Oracle is certainly a good choice for the database, but you'll need to spend time geocoding your preexisting data to work with SpatialVision. Sedona's forthcoming utilities may be useful for organizations that want to make the jump to geospatial analysis but aren't sure how to get there.

About the Author
Jim Milbery, an independent software consultant based in Easton, Pennsylvania, has over 15 years of experience in application development and relational databases. You can visit his Web site at www.milbery.com.
He can be reached at: [email protected]


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.