Name Date Abstract Submission Files
Doug Van Auken
August 28, 2000
Here are two classes. StoreObject.java streams a hashtable object to a database. RetrieveObject.java receives an object from a database. For testing, I just used a Hashtable object. I have tested it out with my own Arc class, and it worked like a champ.

BTW, Access is a little different then Oracle or Sybase, because it uses a generic "OLE Object" field to store binary data.

RetrieveObject.java
StoreObject.java
StoreObject.mdb
Pradeep Ramachandran
May 31, 2001
Extension of the com.bbn.openmap.layer.shape.area package to work with a LinkServer. arealink.zip
Doug Van Auken
June 10, 2001
This package includes a layer and components that deal with shape file data and the dbf file attributes. There are data files in the package as well. Some notes from the author: To mention that to run this as an applet with a web server, you're going to need to comment out the section of code in ExampleApplet.actionListener.actionPerformed() that reads files over the file system and uncomment the section of code that processes files using getCodeBase(). The code to read Little Endien and Big Endien was obtained from the Oreilly book, Java I/O. I modified their example a little bit, so that it could read both byte orders at the same time. This was the main trick in processing these files. The other trick is to not stream the file data while your in a constructor. You have to let the applet initialize, then the user has to initiate a separate download. You might be able to put the file download in a seperate thread, so that the user does not have to initiate a seperate download, but I have not experimented with this approach. dbfShape.jar
Dr. Bart Jourquin
November 21, 2000
This is a OpenMap project file for JBuilder 4.0. Some notes:

  • My project (PC, Windows) is in E:\OpenMap-4.0 => Must be changed in JBuilder according to actual location.
  • The content of the CLASSPATH must obviously be adapted for OpenMap. That can be done on Project Properties -> Required libraries -> Add
OpenMap.jpr
Ray Sebastian
October 24, 2000
This submission allows layers to disable themselves if the projection parameters are not compatible with the Layer requirements. The Layer is able to fire an event that the LayersMenu receives, allowing the LayersMenu to be able to show that the layer is disabled. The included VPFLayer has been modified to utilize the mechanism. LayerEnabledEvent.java
LayerEnabledListener.java
LayersMenu.java
VPFLayer.java
Steve Judd
November 9, 2000
Modification to the DTED package that generates a LOS (Line of Sight) display. The com.bbn.openmap.layer.dted package has been renamed to com.bbn.openmap.layer.SJudd with the modifications. dtedlos.tar.gz
Ray Sebastian
September 28, 2000
Revisions to the DTED Layer that provide advanced memory management features.

  1. The two dimensional array used to store subframes for each frame is replaced by a static HashMap subframe cache (see DTEDSubframeCache.java and DTEDSubframeCacheObject.java). This allows better use of the available memory and also allows the frame and subframe cache sizes to be independently controlled.
  2. Added heuristic routines to compute the size to use for the caches from the current projection (DTEDFrameHandler.computeCacheSize() and DTEDSubframeCache.computeCacheSize()).
  3. Added routines to shrink the frame and subframe caches when a OutOfMemoryError is caught (never found a way to catch errors which occur in the event loop or the toolkit). When an OutOfMemoryError is caught, an error message containing some suggestions for mitigating the problem is output to the console and a modal dialog window. If the user selects "Quit" OpenMap exits. If "OK" is selected then each cache has four objects removed. To see this behavior just set the heapsize to a small size in the openmap shell and use a large window size (32M using DTED1 with scale=2000000 in an 1000x800 window, for example).
  4. Added explicit calls to gc to reduce the probability that the OutOfMemoryErrors would occur. And, in particular, make it more likely that any which do occur are in the DTED code where they can be caught.
  5. Added two more sliders to the DTEDLayer edit pallete which allow the size of the caches to be manually set during runtime. Pressing the "Set Cache Sizes" button causes the cache sizes to be set and held constant until the "Release Cache Sizes" button is pressed. Since the heuristic routines were designed to prevent overflow over a very large range of scales for 47 frames of DTED1 data the user may be able to use larger cache sizes for a particular situation without incurring memory problems.

The end result of all these changes is that there is a low probability of getting an OutOfMemoryError when using ~45 frames of DTED1 data for the following heap and window sizes.

  • a 64M heap size with a 1000x800 pixel screen of DTED1 data
  • a 32M heap size with a 700x300 pixel screen of DTED1 data
  • a 24M heap size with a 400x300 pixel screen of DTED1 data

If an OutOfMemoryError does occur, there is a good probability that it will occur in the DTEDLayer and allow recovery.

Note: Beware that the computeCacheSize routines have not been upgraded to work anywhere other than the US.

dted.jar
Ian Batley
September 24, 2000
This is a Java Layer that works with the Oracle Spatial Database. It displays points, lines and polygons. It also requires a jar file from the Oracle SDO called sdoapi.zip. We aren't making the jar file available because we are not sure about the distribution rules for it. If anyone has more information about the distribution requirements for the sdoapi.zip, please let us know.

To download the sdoapi.zip you must be a member of the Oracle TechNet BUT this is a free membership and then the library can be downloaded under a development license.

OracleSpatialLayer.java