com.bbn.openmap.layer.link
Class LinkGraphicList

java.lang.Object
  extended by com.bbn.openmap.layer.link.LinkGraphicList
All Implemented Interfaces:
LinkGraphicConstants

public class LinkGraphicList
extends java.lang.Object
implements LinkGraphicConstants

The LinkGraphicList is an object that describes a list of graphics. This object can be used to write the graphics to the link, and read the graphics response section from the link.

To use it to write to the link, create the LinkGraphicList with the constructor that takes a link as its only argument, and then use the write methods to add graphics. When all the graphics are written to the link, close the section by calling end() with the appropriate symbol.

To use it to read from a link, use the constructor that takes a link and a LinkOMGraphicsList (and a projection, if you want to generate the graphics as you read them). Call getGraphics() to get the updated list.


Field Summary
protected  LinkOMGraphicList graphics
          Graphics list received.
protected  Link link
          Link used for the transmission/reception of graphics.
protected  java.lang.String linkStatus
          The terminator of the graphics section when receiving graphics.
protected  LinkProperties properties
          The properties returned for this list.
protected static float version
          Version Number of request format.
 
Fields inherited from interface com.bbn.openmap.layer.link.LinkGraphicConstants
BASELINE_BOTTOM, BASELINE_MIDDLE, BASELINE_TOP, BLACK_COLOR_STRING, CLEAR_COLOR_STRING, COLORMODEL_DIRECT, COLORMODEL_INDEXED, COLORMODEL_URL, COLUMN_MAJOR, COORDMODE_ORIGIN, COORDMODE_PREVIOUS, DECIMAL_DEGREES, GRAPHICTYPE_ARC, GRAPHICTYPE_BITMAP, GRAPHICTYPE_CIRCLE, GRAPHICTYPE_ELLIPSE, GRAPHICTYPE_GRAPHIC, GRAPHICTYPE_GRID, GRAPHICTYPE_LINE, GRAPHICTYPE_POINT, GRAPHICTYPE_POLY, GRAPHICTYPE_RASTER, GRAPHICTYPE_RECTANGLE, GRAPHICTYPE_TEXT, JUSTIFY_CENTER, JUSTIFY_LEFT, JUSTIFY_RIGHT, KM, LINETYPE_GREATCIRCLE, LINETYPE_RHUMB, LINETYPE_STRAIGHT, LINETYPE_UNKNOWN, MILES, NMILES, RADIANS, RENDERTYPE_LATLON, RENDERTYPE_OFFSET, RENDERTYPE_UNKNOWN, RENDERTYPE_XY, ROW_MAJOR
 
Constructor Summary
LinkGraphicList(Link link, LinkOMGraphicList graphicList)
          Read the graphics section off the link.
LinkGraphicList(Link link, LinkOMGraphicList graphicList, Projection proj, OMGridGenerator generator)
          Read the graphics section off the link, if you want the graphics to be projected as they come off the link.
LinkGraphicList(Link link, LinkProperties properties)
          Write a graphics section to the link.
 
Method Summary
 void addArc(float latPoint, float lonPoint, float radius, float s, float e, LinkProperties properties)
          Write an arc with a certain radius at a Lat/Lon location.
 void addArc(float latPoint, float lonPoint, float radius, int units, float s, float e, LinkProperties properties)
          Write an arc with a certain radius at a Lat/Lon location, and allows you to specify units of the radius.
 void addArc(float latPoint, float lonPoint, float radius, int units, int nverts, float s, float e, LinkProperties properties)
          Write an arc with a certain radius at a Lat/Lon location, and allows you to specify units of the radius, as well as the number of vertices to use to approximate the arc.
 void addArc(float latPoint, float lonPoint, int w, int h, float s, float e, LinkProperties properties)
          Write an arc with lat/lon placement.
 void addArc(float latPoint, float lonPoint, int offset_x1, int offset_y1, int w, int h, float s, float e, LinkProperties properties)
          Writing an arc at a x, y, offset to a Lat/Lon location.
 void addArc(int x1, int y1, int w, int h, float s, float e, LinkProperties properties)
          Write an arc with x/y placement.
 void addBitmap(float lt, float ln, int w, int h, byte[] bytes, LinkProperties properties)
          Write a bitmap in the response.
 void addBitmap(float lt, float ln, int offset_x1, int offset_y1, int w, int h, byte[] bytes, LinkProperties properties)
          Write a bitmap in the response.
 void addBitmap(int x1, int y1, int w, int h, byte[] bytes, LinkProperties properties)
          Write a bitmap in the response.
 void addCircle(float latPoint, float lonPoint, float radius, int units, int nverts, LinkProperties properties)
          Write a circle in the response.
 void addCircle(float latPoint, float lonPoint, float radius, int units, LinkProperties properties)
          Write a circle in the response.
 void addCircle(float latPoint, float lonPoint, float radius, LinkProperties properties)
          Write a circle in the response.
 void addCircle(float latPoint, float lonPoint, int offset_x1, int offset_y1, int w, int h, LinkProperties properties)
          Write a circle in the response.
 void addCircle(float latPoint, float lonPoint, int w, int h, LinkProperties properties)
          Write a circle in the response.
 void addCircle(int x1, int y1, int w, int h, LinkProperties properties)
          Write a circle in the response.
 void addEllipse(float latPoint, float lonPoint, float majorAxisSpan, float minorAxisSpan, int units, float rotationAngle, LinkProperties properties)
          Write an ellipse with Lat/Lon placement with axis defined in terms of distance.
 void addEllipse(float latPoint, float lonPoint, int w, int h, float rotateAngle, LinkProperties properties)
          Create a OMEllipse, positioned with a lat-lon center and x-y axis.
 void addEllipse(float latPoint, float lonPoint, int offset_x1, int offset_y1, int w, int h, float rotateAngle, LinkProperties properties)
          Create a OMEllipse, positioned at a Lat-lon location, x-y offset, x-y axis.
 void addEllipse(int x1, int y1, int majorAxisSpan, int minorAxisSpan, float rotateAngle, LinkProperties properties)
          Create a OMEllipse, positioned with a x-y center with x-y axis.
 void addGrid(float lt, float ln, int rows, int columns, float orientation, float vResolution, float hResolution, int major, int[] data, LinkProperties properties)
          Add a Grid with Lat/Lon placement.
 void addGrid(float lt, float ln, int offset_x1, int offset_y1, int rows, int columns, float orientation, float vResolution, float hResolution, int major, int[] data, LinkProperties properties)
          Grid Lat/lon placement with XY offset.
 void addGrid(int x1, int y1, int rows, int columns, float orientation, float vResolution, float hResolution, int major, int[] data, LinkProperties properties)
          Add a Grid with XY placement.
 void addLine(float lat_1, float lon_1, float lat_2, float lon_2, int lineType, int nsegs, LinkProperties properties)
          Write a line in the response.
 void addLine(float lat_1, float lon_1, float lat_2, float lon_2, int lineType, LinkProperties properties)
          Write a line in the response.
 void addLine(float lat_1, float lon_1, int x1, int y1, int x2, int y2, LinkProperties properties)
          Write a line in the response.
 void addLine(int x1, int y1, int x2, int y2, LinkProperties properties)
          Write a line in the response.
 void addPoint(float lt1, float ln1, int x1, int y1, int radius, LinkProperties properties)
          Write a point in the response.
 void addPoint(float lt1, float ln1, int radius, LinkProperties properties)
          Write a point in the response.
 void addPoint(int x1, int y1, int radius, LinkProperties properties)
          Write a point in the response.
 void addPoly(double[] llpoints, int units, int lType, int nsegs, LinkProperties properties)
          Write a poly in the response.
 void addPoly(double[] llPoints, int units, int lType, LinkProperties properties)
          Write a poly in the response.
 void addPoly(float latPoint, float lonPoint, int[] xpoints, int[] ypoints, int cMode, LinkProperties properties)
          Write a poly in the response.
 void addPoly(float latPoint, float lonPoint, int[] xypoints, int cMode, LinkProperties properties)
          Write a poly in the response.
 void addPoly(int[] xpoints, int[] ypoints, LinkProperties properties)
          Write a poly in the response.
 void addPoly(int[] xypoints, LinkProperties properties)
          Write a poly in the response.
 void addRaster(float lt, float ln, javax.swing.ImageIcon ii, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, java.awt.Image image, int image_width, int image_height, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, int w, int h, byte[] bytes, java.awt.Color[] colorTable, int trans, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, int offset_x1, int offset_y1, javax.swing.ImageIcon ii, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, int offset_x1, int offset_y1, java.awt.Image image, int image_width, int image_height, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, int w, int h, int[] pix, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, int offset_x1, int offset_y1, int w, int h, byte[] bytes, java.awt.Color[] colorTable, int trans, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, int offset_x1, int offset_y1, int w, int h, int[] pix, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, int offset_x1, int offset_y1, java.lang.String url, LinkProperties properties)
          Write a raster in the response.
 void addRaster(float lt, float ln, java.lang.String url, LinkProperties properties)
          Write a raster in the response.
 void addRaster(int x1, int y1, javax.swing.ImageIcon ii, LinkProperties properties)
          Write a raster in the response.
 void addRaster(int x1, int y1, java.awt.Image image, int image_width, int image_height, LinkProperties properties)
          Write a raster in the response.
 void addRaster(int x1, int y1, int w, int h, byte[] bytes, java.awt.Color[] colorTable, int trans, LinkProperties properties)
          Write a raster in the response.
 void addRaster(int x1, int y1, int w, int h, int[] pix, LinkProperties properties)
          Write a raster in the response.
 void addRaster(int x1, int y1, java.lang.String url, LinkProperties properties)
          Write a raster in the response.
 void addRectangle(float lt1, float ln1, float lt2, float ln2, int lType, int nsegs, LinkProperties properties)
          Write a rectangle in the response.
 void addRectangle(float lt1, float ln1, float lt2, float ln2, int lType, LinkProperties properties)
          Write a rectangle in the response.
 void addRectangle(float lt1, float ln1, int x1, int y1, int x2, int y2, LinkProperties properties)
          Write a rectangle in the response.
 void addRectangle(int x1, int y1, int x2, int y2, LinkProperties properties)
          Write a rectangle in the response.
 void addText(float latPoint, float lonPoint, int offset_x, int offset_y, java.lang.String stuff, int justify, LinkProperties properties)
          Write a text in the response.
 void addText(float latPoint, float lonPoint, int offset_x, int offset_y, java.lang.String stuff, java.lang.String font, int justify, LinkProperties properties)
          Write a text in the response.
 void addText(float latPoint, float lonPoint, java.lang.String stuff, int justify, LinkProperties properties)
          Write a text in the response.
 void addText(float latPoint, float lonPoint, java.lang.String stuff, java.lang.String font, int justify, LinkProperties properties)
          Write a text in the response.
 void addText(int x, int y, java.lang.String stuff, int justify, LinkProperties properties)
          Write a text in the response.
 void addText(int x, int y, java.lang.String stuff, java.lang.String font, int justify, LinkProperties properties)
          Write a text in the response.
 void end(java.lang.String endType)
          The server method that needs to be called at the end of sending a graphics response.
 LinkOMGraphicList getGraphics()
          After a readAndParse() has been called on a link, this can be called to retrieve graphics in an LinkOMGraphicList, if any graphics were sent.
 java.lang.String getLinkStatus()
          After reading the graphics response, this returns the section ending string terminating the graphics section, either Link.END_TOTAL or Link.END_SECTION.
 LinkProperties getProperties()
          Get the properties for the LinkGraphicList.
protected  java.lang.String readGraphics(LinkOMGraphicList graphics, Projection proj, OMGridGenerator generator)
          If a GRAPHICS_RESPONSE_HEADER has been encountered coming off the link, then this method should be called to read the string of graphics that follows.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

link

protected Link link
Link used for the transmission/reception of graphics.


graphics

protected LinkOMGraphicList graphics
Graphics list received.


linkStatus

protected java.lang.String linkStatus
The terminator of the graphics section when receiving graphics.


version

protected static float version
Version Number of request format.


properties

protected LinkProperties properties
The properties returned for this list.

Constructor Detail

LinkGraphicList

public LinkGraphicList(Link link,
                       LinkProperties properties)
                throws java.io.IOException
Write a graphics section to the link.

Throws:
java.io.IOException

LinkGraphicList

public LinkGraphicList(Link link,
                       LinkOMGraphicList graphicList)
                throws java.io.IOException,
                       java.io.EOFException
Read the graphics section off the link.

Parameters:
link - the link to read the response from.
graphicList - the list to add graphics to.
Throws:
java.io.IOException
java.io.EOFException

LinkGraphicList

public LinkGraphicList(Link link,
                       LinkOMGraphicList graphicList,
                       Projection proj,
                       OMGridGenerator generator)
                throws java.io.IOException,
                       java.io.EOFException
Read the graphics section off the link, if you want the graphics to be projected as they come off the link.

Parameters:
link - the link to read graphics from.
graphicList - the list to add graphics to.
proj - the projection to use for generating graphics.
generator - an OMGridGenerator that knows how to render grid objects.
Throws:
java.io.IOException
java.io.EOFException
Method Detail

getGraphics

public LinkOMGraphicList getGraphics()
After a readAndParse() has been called on a link, this can be called to retrieve graphics in an LinkOMGraphicList, if any graphics were sent.

Returns:
LinkOMGraphicList containing the graphics read off the link. If no graphics were sent the list will be empty.

getLinkStatus

public java.lang.String getLinkStatus()
After reading the graphics response, this returns the section ending string terminating the graphics section, either Link.END_TOTAL or Link.END_SECTION.

Returns:
either Link.END_TOTAL or Link.END_SECTION.

getProperties

public LinkProperties getProperties()
Get the properties for the LinkGraphicList. Any information messages can be picked up from within the properties - html, URL, messages, text and information lines.

Returns:
properties

end

public void end(java.lang.String endType)
         throws java.io.IOException
The server method that needs to be called at the end of sending a graphics response. This will tell the link what type of teminator to put on the end of the graphics response section, and also tell the link to fluxh the output stream..

Parameters:
endType - use Link.END_SECTION if you want to add more types of response sections. Use Link.END_TOTAL at the end of the total transmission.
Throws:
java.io.IOException

readGraphics

protected java.lang.String readGraphics(LinkOMGraphicList graphics,
                                        Projection proj,
                                        OMGridGenerator generator)
                                 throws java.io.IOException,
                                        java.io.EOFException
If a GRAPHICS_RESPONSE_HEADER has been encountered coming off the link, then this method should be called to read the string of graphics that follows. The graphics are read and added to the LinkOMGraphicList provided.

Parameters:
graphics - the LinkOMGraphicList to add the link graphics too. This method assumes that this is never null.
proj - If you want the graphics to be projected as they come off the wire, add a projection here. Otherwise, use null.
generator - an OMGridGenerator that knows how to render grid objects.
Throws:
java.io.IOException
java.io.EOFException

addArc

public void addArc(float latPoint,
                   float lonPoint,
                   int w,
                   int h,
                   float s,
                   float e,
                   LinkProperties properties)
            throws java.io.IOException
Write an arc with lat/lon placement.

Parameters:
latPoint - latitude of center point, decimal degrees
lonPoint - longitude of center point, decimal degrees
w - horizontal diameter of arc, pixels
h - vertical diameter of arc, pixels
s - starting angle of arc, decimal degrees
e - angular extent of arc, decimal degrees
properties - attributes for the arc.
Throws:
java.io.IOException

addArc

public void addArc(int x1,
                   int y1,
                   int w,
                   int h,
                   float s,
                   float e,
                   LinkProperties properties)
            throws java.io.IOException
Write an arc with x/y placement.

Parameters:
x1 - window position of center point from left of window, in pixels
y1 - window position of center point from top of window, in pixels
w - horizontal diameter of arc, pixels
h - vertical diameter of arc, pixels
s - starting angle of arc, decimal degrees
e - angular extent of arc, decimal degrees
properties - attributes for the arc.
Throws:
java.io.IOException

addArc

public void addArc(float latPoint,
                   float lonPoint,
                   int offset_x1,
                   int offset_y1,
                   int w,
                   int h,
                   float s,
                   float e,
                   LinkProperties properties)
            throws java.io.IOException
Writing an arc at a x, y, offset to a Lat/Lon location.

Parameters:
latPoint - latitude of center of arc.
lonPoint - longitude of center of arc.
offset_x1 - # pixels to the right the center will be moved from lonPoint.
offset_y1 - # pixels down that the center will be moved from latPoint.
w - horizontal diameter of arc, pixels.
h - vertical diameter of arc, pixels.
s - starting angle of arc, decimal degrees
e - angular extent of arc, decimal degrees
properties - attributes for the arc.
Throws:
java.io.IOException

addArc

public void addArc(float latPoint,
                   float lonPoint,
                   float radius,
                   float s,
                   float e,
                   LinkProperties properties)
            throws java.io.IOException
Write an arc with a certain radius at a Lat/Lon location. Assumes the radius is in decimal degrees.

Parameters:
latPoint - latitude of center point, decimal degrees
lonPoint - longitude of center point, decimal degrees
radius - distance in decimal degrees
s - starting angle of arc, decimal degrees
e - angular extent of arc, decimal degrees
properties - attributes for the arc.
Throws:
java.io.IOException

addArc

public void addArc(float latPoint,
                   float lonPoint,
                   float radius,
                   int units,
                   float s,
                   float e,
                   LinkProperties properties)
            throws java.io.IOException
Write an arc with a certain radius at a Lat/Lon location, and allows you to specify units of the radius.

Parameters:
latPoint - latitude of center of arc in decimal degrees
lonPoint - longitude of center of arc in decimal degrees
radius - distance
units - integer value for units for distance - KM, MILES, NMILES. If < 0, assume decimal degrees.
s - starting angle of arc, decimal degrees
e - angular extent of arc, decimal degrees
properties - attributes for the arc.
Throws:
java.io.IOException

addArc

public void addArc(float latPoint,
                   float lonPoint,
                   float radius,
                   int units,
                   int nverts,
                   float s,
                   float e,
                   LinkProperties properties)
            throws java.io.IOException
Write an arc with a certain radius at a Lat/Lon location, and allows you to specify units of the radius, as well as the number of vertices to use to approximate the arc.

Parameters:
latPoint - latitude of center of arc in decimal degrees
lonPoint - longitude of center of arc in decimal degrees
radius - distance
units - integer value for units for distance - OMArc.KM, OMArc.MILES, OMArc.NMILES. If < 0, assume decimal degrees.
nverts - number of vertices for the poly-arc (if < 3, value is generated internally).
s - starting angle of arc, decimal degrees
e - angular extent of arc, decimal degrees
properties - attributes for the arc.
Throws:
java.io.IOException

addBitmap

public void addBitmap(float lt,
                      float ln,
                      int w,
                      int h,
                      byte[] bytes,
                      LinkProperties properties)
               throws java.io.IOException
Write a bitmap in the response.

Parameters:
lt - latitude of placement of upper left corner of bitmap.
ln - longitude of placement of upper left corner of bitmap.
w - pixel width of bitmap.
h - pixel height of bitmap.
bytes - bitmap data.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkBitmap

addBitmap

public void addBitmap(int x1,
                      int y1,
                      int w,
                      int h,
                      byte[] bytes,
                      LinkProperties properties)
               throws java.io.IOException
Write a bitmap in the response.

Parameters:
x1 - horizontal placement of upper left corner of bitmap.
y1 - vertical placement of upper left corner of bitmap.
w - pixel width of bitmap.
h - pixel height of bitmap.
bytes - bitmap data.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkBitmap

addBitmap

public void addBitmap(float lt,
                      float ln,
                      int offset_x1,
                      int offset_y1,
                      int w,
                      int h,
                      byte[] bytes,
                      LinkProperties properties)
               throws java.io.IOException
Write a bitmap in the response.

Parameters:
lt - latitude of placement of upper left corner of bitmap.
ln - longitude of placement of upper left corner of bitmap.
offset_x1 - horizontal offset of upper left corner of bitmap.
offset_y1 - vertical offset of upper left corner of bitmap.
w - pixel width of bitmap.
h - pixel height of bitmap.
bytes - bitmap data.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkBitmap

addCircle

public void addCircle(float latPoint,
                      float lonPoint,
                      int w,
                      int h,
                      LinkProperties properties)
               throws java.io.IOException
Write a circle in the response.

Parameters:
latPoint - latitude of placement of center of circle.
lonPoint - longitude of placement of center of circle.
w - pixel width of circle.
h - pixel height of circle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkCircle

addCircle

public void addCircle(int x1,
                      int y1,
                      int w,
                      int h,
                      LinkProperties properties)
               throws java.io.IOException
Write a circle in the response.

Parameters:
x1 - horizontal pixel placement of center of circle..
y1 - vertical pixel placement of center of circle..
w - pixel width of circle.
h - pixel height of circle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkCircle

addCircle

public void addCircle(float latPoint,
                      float lonPoint,
                      int offset_x1,
                      int offset_y1,
                      int w,
                      int h,
                      LinkProperties properties)
               throws java.io.IOException
Write a circle in the response.

Parameters:
latPoint - latitude of placement of center of circle.
lonPoint - longitude of placement of center of circle.
offset_x1 - horizontal pixel offset of center of circle..
offset_y1 - vertical pixel offset of center of circle..
w - width of circle.
h - height of circle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkCircle

addCircle

public void addCircle(float latPoint,
                      float lonPoint,
                      float radius,
                      LinkProperties properties)
               throws java.io.IOException
Write a circle in the response.

Parameters:
latPoint - latitude of placement of center of circle.
lonPoint - longitude of placement of center of circle.
radius - radius of circle, in decimal degrees..
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkCircle

addCircle

public void addCircle(float latPoint,
                      float lonPoint,
                      float radius,
                      int units,
                      LinkProperties properties)
               throws java.io.IOException
Write a circle in the response.

Parameters:
latPoint - latitude of placement of center of circle.
lonPoint - longitude of placement of center of circle.
radius - radius of circle, in decimal degrees..
units - units of the radius - km, miles, nmiles, degrees..
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkCircle

addCircle

public void addCircle(float latPoint,
                      float lonPoint,
                      float radius,
                      int units,
                      int nverts,
                      LinkProperties properties)
               throws java.io.IOException
Write a circle in the response.

Parameters:
latPoint - latitude of placement of center of circle.
lonPoint - longitude of placement of center of circle.
radius - radius of circle, in decimal degrees..
units - units of the radius - km, miles, nmiles, degrees..
nverts - number of points to use to approximate the circle. If negative, the client algorithm will figure out what is best.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkCircle

addEllipse

public void addEllipse(float latPoint,
                       float lonPoint,
                       float majorAxisSpan,
                       float minorAxisSpan,
                       int units,
                       float rotationAngle,
                       LinkProperties properties)
                throws java.io.IOException
Write an ellipse with Lat/Lon placement with axis defined in terms of distance.

Parameters:
latPoint - latitude of center of circle in decimal degrees
lonPoint - longitude of center of circle in decimal degrees
majorAxisSpan - x axis value, units
minorAxisSpan - y axis value, units
units - integer value for units for distance - OMCircle.KM, OMCircle.MILES, OMCircle.NMILES. If < 0, assume decimal degrees.
rotationAngle - The angle by which the circle/ellipse is to be rotated, in radians
properties - attributes for the circle.
Throws:
java.io.IOException

addEllipse

public void addEllipse(int x1,
                       int y1,
                       int majorAxisSpan,
                       int minorAxisSpan,
                       float rotateAngle,
                       LinkProperties properties)
                throws java.io.IOException
Create a OMEllipse, positioned with a x-y center with x-y axis. Rendertype is RENDERTYPE_XY.

Parameters:
x1 - window position of center point from left of window, in pixels
y1 - window position of center point from top of window, in pixels
majorAxisSpan - horizontal diameter of circle/ellipse, pixels
minorAxisSpan - vertical diameter of circle/ellipse, pixels
rotateAngle - angle of rotation in Radians *
properties - the LinkProperties describing the attributes of the ellipse.
Throws:
java.io.IOException

addEllipse

public void addEllipse(float latPoint,
                       float lonPoint,
                       int w,
                       int h,
                       float rotateAngle,
                       LinkProperties properties)
                throws java.io.IOException
Create a OMEllipse, positioned with a lat-lon center and x-y axis. Rendertype is RENDERTYPE_OFFSET.

Parameters:
latPoint - latitude of center of circle in decimal degrees
lonPoint - longitude of center of circle in decimal degrees
w - horizontal diameter of circle/ellipse, pixels
h - vertical diameter of circle/ellipse, pixels
rotateAngle - angle of rotation in Radians
properties - the LinkProperties describing the attributes of the ellipse.
Throws:
java.io.IOException

addEllipse

public void addEllipse(float latPoint,
                       float lonPoint,
                       int offset_x1,
                       int offset_y1,
                       int w,
                       int h,
                       float rotateAngle,
                       LinkProperties properties)
                throws java.io.IOException
Create a OMEllipse, positioned at a Lat-lon location, x-y offset, x-y axis. Rendertype is RENDERTYPE_OFFSET.

Parameters:
latPoint - latitude of center of circle in decimal degrees
lonPoint - longitude of center of circle in decimal degrees
offset_x1 - # pixels to the right the center will be moved from lonPoint.
offset_y1 - # pixels down that the center will be moved from latPoint.
w - horizontal diameter of circle/ellipse, pixels.
h - vertical diameter of circle/ellipse, pixels.
rotateAngle - the rotation of the ellipse around the center point, in radians.
properties - the LinkProperties describing the attributes of the ellipse.
Throws:
java.io.IOException

addGrid

public void addGrid(float lt,
                    float ln,
                    int rows,
                    int columns,
                    float orientation,
                    float vResolution,
                    float hResolution,
                    int major,
                    int[] data,
                    LinkProperties properties)
             throws java.io.IOException
Add a Grid with Lat/Lon placement.

Parameters:
lt - latitude of the top of the grid.
ln - longitude of the left side of the grid.
rows - number of vertical points of the grid.
columns - number of horizontal points of the grid.
orientation - the direction of the vertical axits of the grid, in radians from up ( North).
vResolution - degrees/point between rows of the grid.
hResolution - degrees/point between columns of the grid.
major - designation of the presentation of the data, as columns (COLUMN_MAJOR) or rows (ROW_MAJOR).
data - data points of the grid.
properties - Properties containing attributes.
Throws:
java.io.IOException

addGrid

public void addGrid(int x1,
                    int y1,
                    int rows,
                    int columns,
                    float orientation,
                    float vResolution,
                    float hResolution,
                    int major,
                    int[] data,
                    LinkProperties properties)
             throws java.io.IOException
Add a Grid with XY placement.

Parameters:
x1 - window location of the left side of the grid.
y1 - window location of the top of the grid.
rows - number of vertical points of the grid.
columns - number of horizontal points of the grid.
orientation - the direction of the vertical axits of the grid, in radians from up ( North).
vResolution - pixels/point between rows of the grid.
hResolution - pixels/point between columns of the grid.
major - designation of the presentation of the data, as columns (COLUMN_MAJOR) or rows (ROW_MAJOR).
data - data points of the grid.
properties - Properties containing attributes.
Throws:
java.io.IOException

addGrid

public void addGrid(float lt,
                    float ln,
                    int offset_x1,
                    int offset_y1,
                    int rows,
                    int columns,
                    float orientation,
                    float vResolution,
                    float hResolution,
                    int major,
                    int[] data,
                    LinkProperties properties)
             throws java.io.IOException
Grid Lat/lon placement with XY offset.

Parameters:
lt - latitude of the top of the grid, before the offset.
ln - longitude of the left side of the grid, before the offset.
offset_x1 - number of pixels to move grid to the right.
offset_y1 - number of pixels to move grid down.
rows - number of vertical points of the grid.
columns - number of horizontal points of the grid.
orientation - the direction of the vertical axits of the grid, in radians from up ( North).
vResolution - pixels/point between rows of the grid.
hResolution - pixels/point between columns of the grid.
major - designation of the presentation of the data, as columns (COLUMN_MAJOR) or rows (ROW_MAJOR).
data - data points of the grid.
properties - Properties containing attributes.
Throws:
java.io.IOException

addLine

public void addLine(float lat_1,
                    float lon_1,
                    float lat_2,
                    float lon_2,
                    int lineType,
                    LinkProperties properties)
             throws java.io.IOException
Write a line in the response.

Parameters:
lat_1 - latitude of placement of start of line.
lon_1 - longitude of placement of start of line.
lat_2 - latitude of placement of end of line.
lon_2 - longitude of placement of end of line.
lineType - type of line - straight, rhumb, great circle..
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkLine

addLine

public void addLine(float lat_1,
                    float lon_1,
                    float lat_2,
                    float lon_2,
                    int lineType,
                    int nsegs,
                    LinkProperties properties)
             throws java.io.IOException
Write a line in the response.

Parameters:
lat_1 - latitude of placement of start of line.
lon_1 - longitude of placement of start of line.
lat_2 - latitude of placement of end of line.
lon_2 - longitude of placement of end of line.
lineType - type of line - straight, rhumb, great circle..
nsegs - number of points to use to approximate curved line..
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkLine

addLine

public void addLine(int x1,
                    int y1,
                    int x2,
                    int y2,
                    LinkProperties properties)
             throws java.io.IOException
Write a line in the response.

Parameters:
x1 - Horizontal pixel placement of start of line.
y1 - Vertical pixel placement of start of line.
x2 - Horizontal pixel placement of end of line.
y2 - Vertical pixel placement of end of line.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkLine

addLine

public void addLine(float lat_1,
                    float lon_1,
                    int x1,
                    int y1,
                    int x2,
                    int y2,
                    LinkProperties properties)
             throws java.io.IOException
Write a line in the response.

Parameters:
lat_1 - latitude of placement of line.
lon_1 - longitude of placement of line.
x1 - Horizontal pixel offset of start of line.
y1 - Vertical pixel offset of start of line.
x2 - Horizontal pixel offset of end of line.
y2 - Vertical pixel offset of end of line.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkLine

addRaster

public void addRaster(float lt,
                      float ln,
                      javax.swing.ImageIcon ii,
                      LinkProperties properties)
               throws java.io.IOException,
                      java.lang.InterruptedException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
ii - ImageIcon to place on the map..
properties - Properties containing attributes.
Throws:
java.io.IOException
java.lang.InterruptedException
See Also:
LinkRaster

addRaster

public void addRaster(int x1,
                      int y1,
                      javax.swing.ImageIcon ii,
                      LinkProperties properties)
               throws java.io.IOException,
                      java.lang.InterruptedException
Write a raster in the response.

Parameters:
x1 - horizontal pixel location of upper left corner of raster.
y1 - vertical pixel location of upper left corner of raster.
ii - ImageIcon to place on the map..
properties - Properties containing attributes.
Throws:
java.io.IOException
java.lang.InterruptedException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      int offset_x1,
                      int offset_y1,
                      javax.swing.ImageIcon ii,
                      LinkProperties properties)
               throws java.io.IOException,
                      java.lang.InterruptedException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
offset_x1 - horizontal pixel offset of upper left corner of raster.
offset_y1 - vertical pixel offset of upper left corner of raster.
ii - ImageIcon to place on the map..
properties - Properties containing attributes.
Throws:
java.io.IOException
java.lang.InterruptedException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      java.awt.Image image,
                      int image_width,
                      int image_height,
                      LinkProperties properties)
               throws java.io.IOException,
                      java.lang.InterruptedException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
image_width - width of raster.
image_height - height of raster.
image - the java.awt.Image.
properties - Properties containing attributes.
Throws:
java.io.IOException
java.lang.InterruptedException
See Also:
LinkRaster

addRaster

public void addRaster(int x1,
                      int y1,
                      java.awt.Image image,
                      int image_width,
                      int image_height,
                      LinkProperties properties)
               throws java.io.IOException,
                      java.lang.InterruptedException
Write a raster in the response.

Parameters:
x1 - horizontal pixel location of upper left corner of raster.
y1 - vertical pixel location of upper left corner of raster.
image - Image to place on map.
image_width - width of image.
image_height - height of image.
properties - Properties containing attributes.
Throws:
java.io.IOException
java.lang.InterruptedException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      int offset_x1,
                      int offset_y1,
                      java.awt.Image image,
                      int image_width,
                      int image_height,
                      LinkProperties properties)
               throws java.io.IOException,
                      java.lang.InterruptedException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
offset_x1 - horizontal pixel offset of upper left corner of raster.
offset_y1 - vertical pixel offset of upper left corner of raster.
image - Image to place on map.
image_width - width of image.
image_height - height of image.
properties - Properties containing attributes.
Throws:
java.io.IOException
java.lang.InterruptedException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      int w,
                      int h,
                      int[] pix,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
w - width of raster.
h - height of raster.
pix - integer image pixel data.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(int x1,
                      int y1,
                      int w,
                      int h,
                      int[] pix,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
x1 - horizontal pixel location of upper left corner of raster.
y1 - vertical pixel location of upper left corner of raster.
w - width of raster.
h - height of raster.
pix - integer image pixel data.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      int offset_x1,
                      int offset_y1,
                      int w,
                      int h,
                      int[] pix,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
offset_x1 - horizontal pixel offset of upper left corner of raster.
offset_y1 - vertical pixel offset of upper left corner of raster.
w - width of raster.
h - height of raster.
pix - integer image pixel data.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      java.lang.String url,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
url - the url to download image from.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(int x1,
                      int y1,
                      java.lang.String url,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
x1 - horizontal pixel location of upper left corner of raster.
y1 - vertical pixel location of upper left corner of raster.
url - the url to download the image from.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      int offset_x1,
                      int offset_y1,
                      java.lang.String url,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
offset_x1 - horizontal pixel offset of upper left corner of raster.
offset_y1 - vertical pixel offset of upper left corner of raster.
url - the url to download the image from.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      int w,
                      int h,
                      byte[] bytes,
                      java.awt.Color[] colorTable,
                      int trans,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
w - width of image.
h - height of image.
bytes - the image data, indexes into the colortable.
colorTable - RGB integers representing colortable of image.
trans - the transparency of image.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(int x1,
                      int y1,
                      int w,
                      int h,
                      byte[] bytes,
                      java.awt.Color[] colorTable,
                      int trans,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
x1 - horizontal pixel location of upper left corner of raster.
y1 - vertical pixel location of upper left corner of raster.
w - width of image.
h - height of image.
bytes - the image data, indexes into the colortable.
colorTable - RGB integers representing colortable of image.
trans - the transparency of image.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRaster

public void addRaster(float lt,
                      float ln,
                      int offset_x1,
                      int offset_y1,
                      int w,
                      int h,
                      byte[] bytes,
                      java.awt.Color[] colorTable,
                      int trans,
                      LinkProperties properties)
               throws java.io.IOException
Write a raster in the response.

Parameters:
lt - latitude of placement of upper left corner of raster.
ln - longitude of placement of upper left corner of raster.
offset_x1 - horizontal pixel offset of upper left corner of raster.
offset_y1 - vertical pixel offset of upper left corner of raster.
w - width of image.
h - height of image.
bytes - the image data, indexes into the colortable.
colorTable - RGB integers representing colortable of image.
trans - the transparency of image.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRaster

addRectangle

public void addRectangle(float lt1,
                         float ln1,
                         float lt2,
                         float ln2,
                         int lType,
                         LinkProperties properties)
                  throws java.io.IOException
Write a rectangle in the response.

Parameters:
lt1 - latitude of placement of upper left corner of rectangle.
ln1 - longitude of placement of upper left corner of rectangle.
lt2 - latitude of placement of lower right corner of rectangle.
ln2 - longitude of placement of lower right corner of rectangle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRectangle

addRectangle

public void addRectangle(float lt1,
                         float ln1,
                         float lt2,
                         float ln2,
                         int lType,
                         int nsegs,
                         LinkProperties properties)
                  throws java.io.IOException
Write a rectangle in the response.

Parameters:
lt1 - latitude of placement of upper left corner of rectangle.
ln1 - longitude of placement of upper left corner of rectangle.
lt2 - latitude of placement of lower right corner of rectangle.
ln2 - longitude of placement of lower right corner of rectangle.
lType - the line type to use for the rectangle - straight, rhumb, great circle.
nsegs - number of segments to use to approximate curved rectangle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRectangle

addRectangle

public void addRectangle(int x1,
                         int y1,
                         int x2,
                         int y2,
                         LinkProperties properties)
                  throws java.io.IOException
Write a rectangle in the response.

Parameters:
x1 - Horizontal pixel location of upper left corner of rectangle..
y1 - Vertical pixel location of upper left corner of rectangle.
x2 - Horizontal pixel location of lower right corner of rectangle..
y2 - Vertical pixel location of lower right corner of rectangle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRectangle

addRectangle

public void addRectangle(float lt1,
                         float ln1,
                         int x1,
                         int y1,
                         int x2,
                         int y2,
                         LinkProperties properties)
                  throws java.io.IOException
Write a rectangle in the response.

Parameters:
lt1 - latitude of placement of upper left corner of rectangle.
ln1 - longitude of placement of upper left corner of rectangle..
x1 - Horizontal pixel offset of upper left corner of rectangle.
y1 - Vertical pixel offset of upper left corner of rectangle.
x2 - Horizontal pixel offset of lower right corner of rectangle.
y2 - Vertical pixel offset of lower right corner of rectangle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkRectangle

addPoint

public void addPoint(float lt1,
                     float ln1,
                     int radius,
                     LinkProperties properties)
              throws java.io.IOException
Write a point in the response.

Parameters:
lt1 - latitude of placement of upper left corner of point.
ln1 - longitude of placement of upper left corner of point.
radius - the pixel radius size of the point.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoint

addPoint

public void addPoint(int x1,
                     int y1,
                     int radius,
                     LinkProperties properties)
              throws java.io.IOException
Write a point in the response.

Parameters:
x1 - Horizontal pixel location of upper left corner of point..
y1 - Vertical pixel location of upper left corner of point.
radius - Pixel radius of the point.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoint

addPoint

public void addPoint(float lt1,
                     float ln1,
                     int x1,
                     int y1,
                     int radius,
                     LinkProperties properties)
              throws java.io.IOException
Write a point in the response.

Parameters:
lt1 - latitude of placement of upper left corner of point.
ln1 - longitude of placement of upper left corner of point..
x1 - Horizontal pixel offset of upper left corner of point.
y1 - Vertical pixel offset of upper left corner of point.
radius - Pixel radius of the point.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoint

addPoly

public void addPoly(double[] llPoints,
                    int units,
                    int lType,
                    LinkProperties properties)
             throws java.io.IOException
Write a poly in the response.

Parameters:
llPoints - alternating latitude and longitude points of poly.
units - degrees or radians.
lType - straight, rhumb, great circle.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoly

addPoly

public void addPoly(double[] llpoints,
                    int units,
                    int lType,
                    int nsegs,
                    LinkProperties properties)
             throws java.io.IOException
Write a poly in the response.

Parameters:
llpoints - alternating latitude and longitude points of poly.
units - degrees or radians.
lType - straight, rhumb, great circle.
nsegs - number of segments to use to approximate curved poly lines..
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoly

addPoly

public void addPoly(int[] xypoints,
                    LinkProperties properties)
             throws java.io.IOException
Write a poly in the response.

Parameters:
xypoints - alternating x and y pixel locations of poly.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoly

addPoly

public void addPoly(int[] xpoints,
                    int[] ypoints,
                    LinkProperties properties)
             throws java.io.IOException
Write a poly in the response.

Parameters:
xpoints - horizontal pixel locations of poly.
ypoints - vertical pixel locations of poly.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoly

addPoly

public void addPoly(float latPoint,
                    float lonPoint,
                    int[] xypoints,
                    int cMode,
                    LinkProperties properties)
             throws java.io.IOException
Write a poly in the response.

Parameters:
latPoint - the latitude anchor point of the poly.
lonPoint - the longitude anchor point of the poly.
xypoints - alternating x and y offset polygon points.
cMode - Coordinate Mode (Origin or Previous) that indicate whether the x and y points are relative to the first point, or to the previous point. .
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoly

addPoly

public void addPoly(float latPoint,
                    float lonPoint,
                    int[] xpoints,
                    int[] ypoints,
                    int cMode,
                    LinkProperties properties)
             throws java.io.IOException
Write a poly in the response.

Parameters:
latPoint - the latitude anchor point of the poly.
lonPoint - the longitude anchor point of the poly.
xpoints - horizontal pixel offset polygon points.
ypoints - vertical pixel offset polygon points.
cMode - Coordinate Mode (Origin or Previous) that indicate whether the x and y points are relative to the first point, or to the previous point. .
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkPoly

addText

public void addText(float latPoint,
                    float lonPoint,
                    java.lang.String stuff,
                    int justify,
                    LinkProperties properties)
             throws java.io.IOException
Write a text in the response.

Parameters:
latPoint - latitude of placement of text.
lonPoint - longitude of placement of text.
stuff - the text.
justify - place the text left, right or centered on location.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkText

addText

public void addText(int x,
                    int y,
                    java.lang.String stuff,
                    int justify,
                    LinkProperties properties)
             throws java.io.IOException
Write a text in the response.

Parameters:
x - Horizontal pixel location of text.
y - Vertical pixel location of text.
stuff - the text.
justify - place the text left, right or centered on location.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkText

addText

public void addText(float latPoint,
                    float lonPoint,
                    int offset_x,
                    int offset_y,
                    java.lang.String stuff,
                    int justify,
                    LinkProperties properties)
             throws java.io.IOException
Write a text in the response.

Parameters:
latPoint - latitude of text placement.
lonPoint - longitude of text placement.
offset_x - Horizontal pixel offset of text.
offset_y - Vertical pixel offset of text.
stuff - the text.
justify - place the text left, right or centered on location.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkText

addText

public void addText(float latPoint,
                    float lonPoint,
                    java.lang.String stuff,
                    java.lang.String font,
                    int justify,
                    LinkProperties properties)
             throws java.io.IOException
Write a text in the response.

Parameters:
latPoint - latitude of placement of text.
lonPoint - longitude of placement of text.
stuff - the text.
font - a text representation of the font.
justify - place the text left, right or centered on location.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkText

addText

public void addText(int x,
                    int y,
                    java.lang.String stuff,
                    java.lang.String font,
                    int justify,
                    LinkProperties properties)
             throws java.io.IOException
Write a text in the response.

Parameters:
x - Horizontal pixel location of text.
y - Vertical pixel location of text.
stuff - the text.
font - a text representation of the font.
justify - place the text left, right or centered on location.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkText

addText

public void addText(float latPoint,
                    float lonPoint,
                    int offset_x,
                    int offset_y,
                    java.lang.String stuff,
                    java.lang.String font,
                    int justify,
                    LinkProperties properties)
             throws java.io.IOException
Write a text in the response.

Parameters:
latPoint - latitude of text placement.
lonPoint - longitude of text placement.
offset_x - Horizontal pixel offset of text.
offset_y - Vertical pixel offset of text.
stuff - the text.
font - a text representation of the font.
justify - place the text left, right or centered on location.
properties - Properties containing attributes.
Throws:
java.io.IOException
See Also:
LinkText


Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details