1 / 21

Common Map Widget API DCGS Teams’ Week April, 2014

UNCLASSIFIED. Common Map Widget API DCGS Teams’ Week April, 2014. UNCLASSIFIED. Agenda. Background The API Current Status Sample of Who’s Using It JC2CUI Example How to Engage. Background. Common Map Widget API (CMAPI). What is it? Specification for interwidget communication

jewell
Download Presentation

Common Map Widget API DCGS Teams’ Week April, 2014

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. UNCLASSIFIED Common Map Widget APIDCGS Teams’ WeekApril, 2014 UNCLASSIFIED

  2. Agenda • Background • The API • Current Status • Sample of Who’s Using It • JC2CUI Example • How to Engage

  3. Background Common Map Widget API (CMAPI) • What is it? • Specification for interwidget communication • Enables Map widgets and data widgets from different programs to interoperate • Where did it come from? • GCCS-I3, JC2CUI, DCGS-IC widget interoperability problem at CENTCOM • Expanded to many programs since • How does it evolve? • Bi-weekly TC meeting • 175 member mailing list • Coordination with OWF • How is it governed • Operating as Open Source project shepherded by DI2E Framework

  4. Background: Why Do I Care? • Cross-vendor interoperability • Widgets from different vendors can interoperate with any map widget “out of the box” • Specialization • Only a few vendors specialize on map widgets • Every one else specialize on data widgets • Competition • Can replace one vendor’s map widget with a different one from another vendor • Agility • Widgets built for one use can be quickly incorporated into new workflows “on the fly” • Compose-able capabilities

  5. 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

  6. The API: Architecture View GCCS-I3 Map Widget Search Widget (from DCGS-IC) OpenLayers Library JavaScript Translation Code Analysis Widget (from Army) JC2CUI Map Widget Google Earth Library JavaScript Translation Code SA Widget (from JC2CUI) Intel Widget (from GCCS-I3) Army Map Widget Google Map Library JavaScript Translation Code All of these widgets can interoperate with any (or all) of the map widgets on the left, due to all implementing a common API (the CMAPI) Map Library-Unique APIs (e.g., OpenLayers, GoogleMaps, Proprietary, etc) Common Map Widget API – enables widgets from different programs to interoperate with map widgets from different programs

  7. 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

  8. The API: Actual Text

  9. The API: Actual Text

  10. 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} }');

  11. Current Status • V1.2.0 available (www.cmapi.org) • V1.2.1 in process • Expect completion mid-Summer • Focusing on user manipulation extensions • Exploring handing off governance to Open Geospatial Consortium • Working with GMU for non-OWF widgets (e.g., HTML5) • GMU will be at Plugfest

  12. Sample of Who’s Using It • Joint Command and Control Common User Interface (JC2CUI) • Global Command and Control System – Integrated Imagery and Intelligence (GCCS-I3) • Distributed Common Ground System • Army (DCGS-A) • Intelligence Community (DCGS-IC) • Defense Intelligence Information Enterprise (DI2E) Framework • Army Tactical Mission Command • NSA (Red Bridge) • NGA (Integrated Analytic Environment (IAE), Geospatial Visualization Services (GVS), others) • CIA (Geospatial Tools Program) • Navy C2RPC (PEO-C4I/PMW-150) • AOC-WS • US Coast Guard Adopted by OWF GOSS as OWF related project

  13. 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

  14. How To Engage • Implement the API in your widgets • www.cmapi.org • Where widgets need to display on a map, or if you have a map widget • Join the group • common-map-widget-api@googlegroups.com • Re-use existing products • Map widgets: • Extensible Mapping Platform (EMP) • JC2CUI • Others • CMAPI JavaScript library • CMAPI test widgets • Go to https://storefront.di2e.net/marketplace to access

  15. Backups

  16. How It Came About • 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 • E.g., plug and play widgets from DCGS-IC, GCCS-I3, JC2CUI at CENTCOM • The Problem • Map widgets are tightly coupled to query widgets • Interwidgetcomms (channels) unique to each program • The Solution • Common Map Widget API

  17. Benefits of CMAPI • Cross-vendor interoperability • Widgets from different vendors can interoperate with any map widget “out of the box” • Specialization • Only a few vendors specialize on map widgets • Every one else specialize on data widgets • Competition • Can replace one vendor’s map widget with a different one from another vendor • Agility • Widgets built for one use can be quickly incorporated into new workflows “on the fly” • Compose-able capabilities

  18. Problem Statement • Widget-based applications often require a map widget • Interwidget APIs used to “connect” data widgets to map widget are proprietary • Abstractions for map renderer APIs (e.g., mapstraction) are for use within a widget, and not across widgets • Need a vendor-agnostic API to enable interwidget communications • between any vendor’s data widget … • and any other vendor’s map widget

  19. CMAPI Use Case Browser Disease distribution iFrame iFrame iFrame Search & Select sources Resource allocations Select water sources Analyze and combine Doctor Reports iFrame Map = Not OGC = CMAPI = OGC KML KML CSW WFS WMS Auto-Desk MapInfo Inter-Graph OpenMap ESRI Catalog

  20. 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. • Resembles iGoogle, • Uses Shindig - 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

  21. Benefits • Cross-program interoperability • Widgets from different programs can interoperate with any map widget “out of the box” • Specialization • Only a few programs build map widgets • Every one else focuses on data widgets • Competition • Can replace a map widget with a better one

More Related