Common Map Widget API v13
Common Map Widget API v13
Common Map Widget API v13
• Background
• The API
• Current Status
• Implementation Example (picture only)
2
Background: OWF
A Combat Support Agency
• Current Users:
– Joint Command and Control Common User Interface (JC2CUI)
– Global Command and Control System – Integrated Imagery and Intelligence
(GCCS-I3)
– Distributed Common Ground System – Intelligence Community (DCGS-IC)
– Defense Intelligence Information Enterprise (DI2E) Framework
– Army Tactical Mission Command
– NSA
• Other Prospective Partners:
– Navy C2RPC (PEO-C4I/PMW-150)
– AOC-WS
– US Coast Guard
– CIA
• A Common Pattern
– Widgets query for or manipulate data
– Map widget displays results
• The Vision
– Mix and match query widgets and map widgets from different
programs
– I.e., plug and play
• The Problem
– Map widgets are tightly coupled to query widgets
– Interwidget comms (channels) unique to each program
• The Solution
– Common Map Widget API
5
First Principles
A Combat Support Agency
6
The API (Basic Approach)
A Combat Support Agency
7
The API (Conceptual View)
A Combat Support Agency
Search
Map Widget “container” Widget
OpenLayers JavaScript
Library Translation Code Analysis
Widget
Intel
Widget
Map Widget “container”
– Overlays – View
• map.overlay.create • map.view.zoom
• map.overlay.remove • map.view.center.overlay
• map.overlay.hide • map.view.center.feature
• map.overlay.show • map.view.center.location
• map.overlay.update • map.view.center.bounds
• map.view.clicked
– Features
• map.feature.plot – Status
• map.feature.plot.url • map.status.request
• map.feature.unplot • map.status.view
• map.feature.hide • map.status.format
• map.feature.show • map.status.about
• map.feature.selected
• map.feature.update – Errors
• map.error
– Drag And Drop
Will expand these in next few slides
9
The API (Actual Text)
A Combat Support Agency
Plot URL
Purpose: Have the map plot feature data from a Uniform Resource Locator (URL).
Channel: map.feature.plot.url
overlayId: The id of the overlay this feature should be loaded into. If overlay with this id already
exists, new feature is merged into existing overlay; otherwise, new overlay will be
created. If no overlayId is included, default overlay with id equal to sending widget's id is
used. If overlay exists, it will retain its status (whether visible or hidden). If overlay is
created, it will be made visible.
featureId: Unique identifier for the given feature data. Note that feature ids must be unique within
a given overlay. Reusing a feature id will be considered a reload, with the original
feature data being removed and replaced by the new feature data.
featureName: Name for the given feature data. Note that feature names do not have to be unique and
are intended for display purposes only.
format: Data format of the given feature. If no format is specified, the format defaults to “kml.” 10
The API (Actual Text)
A Combat Support Agency
Center on Location
Purpose: Center the map on a particular location. The map may also be zoomed as close as
possible to the location or to a given range.
Channel: map.view.center.location
zoom: If “auto,” map will adjust to zoom in to the given location as close as possible in the
user's viewable area.
If a number, map will zoom to specified range in meters.
If no zoom attribute is included, no zoom is performed.
widgetEventingController.publish('map.feature.plot.url', '{
"featureId": “SAGE_PUBLIC",
"url": "https://sageearth.northcom.mil/arcgisserver/public/SAGE_link.kml"
}');
widgetEventingController.publish('map.view.center.location', '{
"location": {"lat": 40.2205, "lon": -74.3579}
}');
12
Current Status
A Combat Support Agency
13
Common Map Widget API
A Combat Support Agency
• Implementations:
– JC2CUI – Reference Map Widget. Pluggable architecture, supports
dynamically selected map renderer. JavaScript library can be reused for
any desired renderer. Current implementations include Google Maps
API version 2, Google Maps API version 3, Google Earth Plugin,
OpenLayers 2.12.
– Army – Google Earth Plugin based Map Widget with Army extensions.
JavaScript wrapper library can be reused for any desired renderer.
NASA World Wind implementation under development.
– GCSS-I3 – NASA World Wind and Open Layers based implementations
14
JC2 CUI Example
A Combat Support Agency
Publish ReceivePublish
message. Receive
Receive message.
message. Receive message.
Receive message. Receive message. Receive message.
map.feature.plot map.feature.selected
Center on selected Center
Center on on selected
selected Center on selected
Plot tracks on map Plot tracks on map Plot tracks on map
message message
track track
track track
Receive
Receive
Publish
message.
map.feature.selected
message.
Scroll to selected
Show
tracks
message
track
in grid
15
Additional Information
A Combat Support Agency
• More Information:
– Common Map API Group:
https://groups.google.com/forum/?fromgroups#!forum/common-map-widget-api
16