1 / 16

Common Map Widget API

Common Map Widget API. June 05, 2013. Agenda. Background The API Current Status Implementation Example (picture only). Background: OWF. Widgets : web pages or apps contained in an iframe , often used to provide views of dynamic content

bessie
Download Presentation

Common Map Widget API

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Common Map Widget API June 05, 2013

  2. Agenda • Background • The API • Current Status • Implementation Example (picture only)

  3. Background: OWF • Widgets: web pages or apps contained in an iframe, often used to provide views of dynamic content • Ozone: combination layout manager and messaging mechanism for hosting widgets within a Web browser. • It resembles iGoogle, and uses Shindig, an open source Google gadget (widget) container. • Because browsers don't permit communication between iframesfrom different domains, Ozone also provides cross-domain-compatible pub-sub mechanism. • Enables development of Web apps composed of multiple intercommunicating widgets. • OWF = Ozone Widget Framework: in wide use across DoD/IC programs

  4. Background • 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 Adopted by OWF GOSS as OWF related project

  5. Background • 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 • Interwidgetcomms (channels) unique to each program • The Solution • Common Map Widget API

  6. First Principles • First principle of design patterns: program to an interface, not an implementation • From Design Patterns: Elements of Reusable Object-Oriented Software by the "Gang of Four”

  7. The API (Basic Approach) • Identify basic map operations • Abstract operations away from any physical map • Define channels and messages, and associate with basic map operations (i.e., the API) • Any widget can subscribe to map channels and react appropriately • not just a map • Don’t tie API to any particular implementation or map renderer • e.g. Google Earth, OpenLayers

  8. The API (Conceptual View) Search Widget Map Widget “container” OpenLayers Library JavaScript Translation Code Analysis Widget Map Widget “container” SA Widget Google Earth Library JavaScript Translation Code Intel Widget Map Widget “container” Google Map Library JavaScript Translation Code Map Library-Unique APIs (e.g., OpenLayers, GoogleMaps, Proprietary, etc) Common Map Widget API – enables widgets from different communities to interoperate with different maps

  9. The API (summary) • View • map.view.zoom • map.view.center.overlay • map.view.center.feature • map.view.center.location • map.view.center.bounds • map.view.clicked • Status • map.status.request • map.status.view • map.status.format • map.status.about • Errors • map.error • Overlays • map.overlay.create • map.overlay.remove • map.overlay.hide • map.overlay.show • map.overlay.update • Features • map.feature.plot • map.feature.plot.url • map.feature.unplot • map.feature.hide • map.feature.show • map.feature.selected • map.feature.update • Drag And Drop Will expand these in next few slides

  10. The API (Actual Text)

  11. The API (Actual Text)

  12. The API (in code) • Load kml feature data onto map widgetEventingController.publish('map.feature.plot.url', '{ "featureId": “SAGE_PUBLIC", "url": "https://sageearth.northcom.mil/arcgisserver/public/SAGE_link.kml" }'); • Center Map on Location (pan) widgetEventingController.publish('map.view.center.location', '{ "location": {"lat": 40.2205, "lon": -74.3579} }');

  13. Current Status • Current spec (v1.1) • Requires KML and WMS (getMap) • Signed off early 2013 • Growing community of adopters • Next version (v1.2) • Ambiguity fixes • User manipulation support • Optional extensions (e.g., widget intents, clustering) • Considering GeoJSON • Growing community of participants

  14. Common Map Widget API • 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

  15. JC2 CUI Example Publish map.feature.plot message Publish map.feature.selected message Receive message. Plot tracks on map Receive message. Center on selected track Receive message. Plot tracks on map Receive message. Plot tracks on map Receive message. Center on selected track Receive message. Center on selected track Receive message. Center on selected track Receive message. Center on selected track Receive message. Show tracks in grid Publish map.feature.selected message Receive message. Scroll to selected track

  16. Additional Information • More Information: • Common Map API Group: https://groups.google.com/forum/?fromgroups#!forum/common-map-widget-api • Common Map API Wiki: https://intellipedia.intelink.gov/wiki/Common_Map_Widget_API_Committee • POCs for additional info: • Ken Trabue - kenneth.m.trabue.civ@mail.mil • Stephen Lubowsky- slubowsky@eoir.com • Marty Dowd - martin.j.dowd.ctr@mail.mil • Chris Bashioum – cbashioum@mitre.org, bashiouc@nro.ic.gov

More Related