Prior to NeXtEarth users had to have a local (or NFS
mounted) copy of ALL of the raw NGA charts and imagery in order
to plot it with the NeXtMidas MAP option tree. Since the data
sets commonly used are on the order of 2TB in size this is a
major issue. The size alone precludes the use of maps an applet
or a WebStart application. Since most users used NFS mounts to
"localize" the data the performance of the MAP option tree
became highly dependent on the performance of those NFS mounts
(this has been a major issue for a number of users).
Late in 2005 the NeXtMidas team was asked to come up
with a solution that would eliminate the issue of requiring
local copies of the NGA data. One of their key criteria was
that existing NeXtMidas applications would need to be able to
use this solution with minimal changes to their applications
(the goal was to require only a one or two line change in a
macro). At the same time many people pointed to the success of
Google Earth and suggested that NeXtMidas use a similar
approach.
The NeXtMidas team decided to use three important ideas
employed by Google:
Unlike Google the NeXtMidas team has to work in the
following requirements:
While the NeXtMidas Map Server has many things in common
with Google Maps there are a few key differences. The most
notable of which is the image projection used. NeXtMidas uses
the LatLon projection, same as most data supplied by NGA, while
Google uses a Mercader projection. NeXtMidas also chooses to
use the QuadTree positioning for all data, not just imagry.
|
NeXtEarth
|
GoogleEarth
|
Target Audience
|
Midas Users
|
Private & Commercial Customers
|
Projection
|
LatLon
(equirectangular)
|
Mercader
|
Image Type
|
.jpeg
|
.jpeg
|
Image Size
|
256x256 pixels
|
256x256 pixels
|
Positioning | QuadTree | Hybrid (QuadTree for imagery) |
Resolution
Limit
|
No fixed limit
|
Currently 16 levels
|
Imagery Source | National Geospatial-Intelligence Agency (NGA) | Digital Globe |
Maximum Imagery
Resolution
|
1.00 meter
(MrSid format allows higher resolution for select areas) |
0.60 meter
|
Available
Layers
|
Charts
- Global Navigation Chart (GNC) - Jet Navigation Chart (JNC) - Operational Navigation Chart (ONC) - Joint Operations Graphic (JOG) - Topographic Line Map (TLM) - City Graphics (CG) Standard Imagery - 10 meter - 5 meter - 1 meter High-Resolution Imagery - MrSid DTED (Digital Terrain Data) |
Street Maps
Imagery (various resolutions) |
Layer Selection
|
Automatically switches between charts and
imagery types based on resolution. Clients can manually
enable/disable individual layers.
|
Automatically switches between map and
image resolution. Clients can select to view maps,
imagery or both.
|
Positioning is done using a QuadTree where the first level
(the whole world) is "t" and each successive level is defined
by "q", "r", "s", or "t" where "q" is the north-west quadrant
ofthe previous level, "r" the north-east, "s" the south-east
and "t" the south-west. In the below diagram the level 3 tile
with Miami, Florida would be labeled "tqs" (t=World,
q=North-West Hemisphere, s=South East Quardant of North-West
Hemisphere). This is the same positioning system used by Google
for their imagry (note that Google uses a different system for
some of their non-imagry data).
Important Note:
To simplify the algorithm the Earth is assumed to be
square, -180
o
to 180
o
latitude and -180
o
to 180
o
longitude. This assumption guarantees that
the tiles (which have square pixel size) will cover a
square region (in terms of degrees latitude and degrees
longitude).
A side affect of this assumption is a half-height black border at the top (above 90 o N) and bottom (below 90 o S) of the first resolution level ("t") and a half-height black border at either the top ("tq" and "tr") or bottom ("ts" and "tt") of the second resolution level. Starting with the third resolution level there is no data (i.e. "blackness") for any tile specifier starting with "tqq", "tqr", "trq", "trr", "tss", "tst", "tts", or "ttt". |
This section describes Version 1 of the NeXtMidas Map Server
protocol ("version=NMS_1"). Note that all parameters are
case-insensitive (by convention all parameter names are
lower-case and their values are upper-case, the one exception
is the value of
t=
which is lower-case
to match Google).
Tag Name
|
Description
|
Default
|
Example
|
admin=
|
Accesses administrative functions.
Administrative functions are typically used to monitor
server performance and to test rendering functions.
All administrative
functions are implementation dependant and clients must
not rely on their functionality.
|
n/a
|
admin=stats
|
background=
|
Indicates background by name. "NONE"
should be used to indicate no background.
|
background=
BLUEMARBLE |
background=NONE
background=NIGHTSKY |
options=
|
(see below)
|
options=def
|
???
|
t=
|
Indicates tile position.
(See Positioning for more details.) |
t=t
|
t=tq
t=trrqtrsttrs |
v=
|
Reserved.
(Used by
GoogleEarth.)
|
n/a
|
v=3
|
ver=
|
Protocol version identifier string.
The server must reject
any request with an unsupported version
identifier.
|
ver=NMS_1
|
ver=NMS_1
|
The NeXtMidas Map Server serves up many types of charts and
imagery. By default the NeXtMidas Map Server serves up a
default set of the available charts and imagery (usually a mix
of charts and standard-resolution imagery). To customize the
charts and imagery that will be used clients can add the
options=
parameter
onto their request. Clients wishing to use the default set of
options can omit the options parameter or can use
options=DEF.
The options parameter is a mask value used to select which
source data should be used. Some of the common options include:
Name
|
Description
|
CHARTS
|
Turns all charts
on/off
|
GNC
|
Chart: Global Navigation Chart
|
JNC
|
Chart: Jet Navigation Chart |
ONC
|
Chart: Operational Navigation Chart
|
JOG
|
Chart: Joint Operations Graphic
|
TLM
|
Chart: Topographic Line Map
|
CG
|
Chart: City Graphics
|
IMAGERY
|
Turns all imagery
on/off
|
CIB10M
|
Imagery: 10m
|
CIB5M
|
Imagery: 5m |
CIB1M
|
Imagery: 1m |
MRSID
|
High-resolution imagery in MrSid format
|
DTED
|
Digital Terrain Data
|
To specify multiple options separate them with a '+' (the
HTML escape for a space) in the URL (order is not important).
For example to include only the GNC and JNC charts use:
http://<server>:<port>/nms?t=tqs&
options=CHARTS+GNC+JNC
|
Note that
CHARTS
and
IMAGERY
are special
"parent" options that can be used to turn on/off all charts or
(standard-resolution) imagery. Both of these can be prefixed
with "ALL" to turn on all of the data in the category. For
example to turn on all of the charts available use:
http://<server>:<port>/nms?t=tqs& options=ALLCHARTS |
One additional feature is the add/remove syntax that allows
clients to start with the default set of options and add or
remove specific options. To add an option prefix it with "ADD";
to remove an option prefix it with "NO". For example to use the
default set of options, except remove the
JNC
and
ONC
charts and add
MRSID
imagery use:
http://<server>:<port>/nms?t=tqs& options=NOJNC+NOONC+ADDMRSID |
Most data sets cover only a limited part of the Earth and do
so only at higher resolutions. The NeXtMidas Map Server uses
background images to fill this void. Each background is usually
a single (large) image of the entire Earth. The background
image is then used when rendering at low resolutions or when
rendering outside of the range of the data set. The most common
background to use is the BLUEMARBLE background which is simply
an image of the Earth created by the NASA Blue Marble project.
Clients can choose to employ no background image by setting
background=NONE
(this
is typically used on clients that only require high-resolution
data).
The server will use a background color of black (hex value
#000000) for all images since most available image formats
(including JPEG) do not support the use of transparent colors.
Clients should not assume that black pixels in the image can be
rendered as transparent since black is a valid color for use in
actual data.
When responding to an image request for which there is
data coverage the server will simply return the appropriate
image.
If the image request matches a region for which there is
no data the server will return an all-black image and set the
HTTP response code to 204 (HTTP_NO_CONTENT). This allows the
client to optimize its behavior for regions with no data.
(Note: If a background image
is being used then, by definition, all areas will have data
[except above 90
o
N or below 90
o
S].)
Important Note:
The server will not attempt to return return data which
is has a resolution much higher than the requested. A
region for which the server indicated there was no
content at the current resolution may have data available
at a higher resolution.
|