Wouldn't it be interesting to add GIS to Peer Systems? Think what the "thumb tribe" would do if their peer group could be seen on the map! Or how about keeping your address book on a small globe, clicking on Rome for your friends living there?
Your homework: Help us think of new and interesting uses of GIS and tell us about it!
The other day I had a treat: a senior researcher at Los Alamos
dropped by for a chat. He showed me the latest work on project
he's working on, Terrorism Modeling. This is done via Agent
Modeling systems like Ascape
, Swarm, and RePast. These agent
modeling systems build "worlds" populated by mobile entities (agents)
having their own rule sets for establishing their behavior. The
also live in "spaces", environments that they move around in and
interact with.
Typically the spaces the agents occupy are simple grids, or graphs
with edges and nodes. So imagine my surprise when he showed me the
latest model where the agents were moving around on a globe of the
earth! He could zoom in on a country where the cities were marked
and the agents were visible, occupying a "layer" within the cartographic
model.
I was hooked! I looked at the various Java based systems
(there are several) and decided to focus initially on two of them:
OpenMap and GeoTools. This reports on OpenMap .. we'll
do GeoTools (and possibly others) in following reports.
The OpenMap Project is an open
source, JavaBeans based programmers toolkit by BBN Technologies.
It is freely available, downloadable from their website.
They have an active mail list with very fast and friendly
responses to difficulties you may run into. Due to its being Beans
based, it has a very clean "plug-in" model.
Programmers use OpenMap in
one of two ways: by augmenting the OpenMap Viewer application or by
incorporating the OpenMap components directly into their own
applications. You can see
how people are using OpenMap.
Here I'll show just a few snapshots of using the OpenMap viewer to
look at a trip to Italy from Santa Fe. Note that I downloaded the
viewer .. but you can also access it as an applet or using Java
Web Start via the OpenMap
Demo page.
OpenMap Viewer Gallery .. click on images for full size image
OpenMap Viewer Initial View |
Zoomed into Santa Fe |
Orthographic View |
Distance Mode: Santa Fe to Italy |
Day/Night Layer |
Day/Night Mercator View |
The first image above is the OpenMap viewer just after startup.
In order to check the flight to Italy from Santa Fe, I first zoom
into Santa Fe. Note the state boundaries are not present but I can add
them by downloading the state boundaries from the Census database.
We'll see a bit of this sort of map data later. In the third
image I've used the Navigation->Projection menu to select
Orthographic view. I rotated the map in the 5th image by clicking
the mouse right around the tip of Greenland in order to get both the US
and Europe in the same view. I then chose MouseMode->Distance
to measure the flight from Santa Fe to Rome. This is done by
clicking once on Santa Fe, dragging, and double-clicking on Rome.
The double-click ends the transaction, you can create several
"hops" by clicking once, dragging again, and so on, creating a polygon.
Finally in the last two images I use the Layers->Day/Night item
to see the time separation between Santa Fe and Rome, both with the
Orthographic view and the "flat" Mercator view.
You can do a great deal more with the viewer without actually
programming. For example, you can add new layers. This is
done by downloading the new layer's data and JavaBean into the system
and then modifying the openmap.properties file to include the new layer.
One example layer is the ETopo layer, adding depth imaging to the
map's oceans. I've also added the New Mexico counties to OpenMap using
the free map data from the US Census
Office. (Its a bit tricky: you need to run an OpenMap utility to
create an index to the map data) You can also draw geographic figures on
the map which remain after saving your map view. In the drawing
example I've also turned on the Cities layer. Click the images for
full size images.
ETopo Layer |
New Mexico
Layer
|
Drawing Tool |
Our examples above use the Viewer, both as it comes "out of the
box", and with minor configuration. The OpenMap API is also very
useable, either for writing beans/layers that integrate into the Viewer,
or for including the OpenMap package into your own application directly.
The OpenMap download is quite complete, with full JavaDoc for the API. In
terms of support, I've been impressed both with the sophistication of
the user community and the promptness of the response to help requests
on the OpenMap mail list.
The Viewer itself is considered a sample application,
com.bbn.openmap.app.OpenMap, consisting of only 79 lines of code.
The source for this and a similar layer sample,
bbn.openmap.layer.test.TestLayer, is in the downloaded bundle. Both are
well documented in the JavaDocs. OpenMap also comes with a HelloWorld application in the examples
directory.
What a nifty system! OpenMap and other open source GIS systems
show the maturity of GIS, and that it is becoming so universally
available that it can be used in wildly different applications than
originally envisioned. We're looking at a distributed PeerPhoto
system, for example, that would allow a view of your pictures by where
they were taken, or possibly where they are on the peer network.
Think of the Mac Finder having a "sort by place" as well as "sort
by time", or your Windows OutLook addressbook sorted spatially.
Google could add a "place" search criterion that you specified by
dragging out a circle on the globe. EBay could let you limit your
searches to places you can drive to. AOL could add a map to show
where your buddies actually are. Jon Udell shows a nice example
with his BuddySpace.
Download OpenMap, and let me know what you think, both about it, and GIS applications you can think of. I'll press on into other systems and let you know what I find out.