Presentation is loading. Please wait.

Presentation is loading. Please wait.

The FalconView Overlay Wizard

Similar presentations

Presentation on theme: "The FalconView Overlay Wizard"— Presentation transcript:

1 The FalconView Overlay Wizard
Presenters: George Menhorn Daniel Longhurst Georgia Tech Research Institute FVS 2010 FvOverlay Interfaces

2 FalconView Overlay Wizard
What is the FalconView Overlay Wizard? Can I start using the tool? FvwWizards What is a plug-in overlay? GetTheSdk - The FalconView Overlay wizard is a Visual Studio C# template that automatically generates the necessary code and configuration files for a FalconView next generation plug-in overlay It can be used to increase productivity of 3rd party (and in-house) developers for creating plug-in overlays Use the analogy of the app store that Chris Kluckhuhn mentioned to describe plug-in overlays at a high level Some examples include the analysis-tool, the AIS overlay FVS 2010 FalconView Overlay Wizard

3 Next Generation plug-in overlays
FalconView Why a “next generation”? Extended capabilities Easier to write a plug-in overlay More efficient Future proofed The remaining internal FalconView overlays will be migrated out to plug-ins in 5.1 In work was done to plug-in overlay framework primarily to offer more power to plug-in overlays. The impetus was the open-source release. Extended capabilities Static-overlays with editors (e.g., Map Data Manager) File-overlays without editors (e.g., Shape File Overlay) Snapping to points in another overlay Generic menu-items Advanced event routing Display progress bar in the FalconView status bar Ability to bring up overlay options dialog from your overlay Easier to write – design goals Fewer methods to implement: i) configuration file ii) split up interfaces into smaller subsets of functionallity Object lifetimes improved (no more overlay handles) Incrementally add features by adding optional interfaces FVS 2010 FvOverlay Interfaces

4 Overlay Types Configuration File
FvOverlayTypes.xml <OverlayType displayName="Geodata“ iconFile="ovlmgr\geodata.ico" enabled="true“ defaultRestoreAtStartup="false" uid="6EA5B9FC f8d-9F2F-F6B1CB0D03D7"> <FileOverlayTypeDescriptor defaultDir="FOLDERID_PublicDocuments\PFPS\data\Geodata" defaultFileExtension=".kml" openFileDialogFilter="KML files (*.kml;*.kmz)|*.kml;*.kmz|GPX files (*.gpx)|*.gpx|ArcInfo (*.E00)|*.E00|GeoRSS (*.rss)|*.rss|GML files (*.gml)|*.gml" saveFileDialogFilter="KML files (*.kml;*.kmz)|*.kml;*.kmz" /> <OverlayFactory overlayClsid="641E4D02-4A F3-F32FBFC85E21" /> </OverlayType> The life of an overlay type begins in the configuration file FVS 2010 FvOverlay Interfaces

5 IFvOverlay – the only required interface
Overlay Objects IFvOverlay – the only required interface Read only property for overlay unique id Read/write property for visibility Receives overlay event sink IPropertyNotifySink IDisplayChangeNotifyEvents IMapChangeNotifyEvents Lifetime of object corresponds with lifetime of overlay: Initialize / Terminate IPropertyNotifySink::OnChanged – used to notify that overlay is dirty or if the playback time interval changes IDisplayChangeNotifyEvents::InvalidateOverlay IMapChangeNotifyEvents::OnRequestMapCenterChange Multiple objects for multiple overlays opened Point out decoupling from FalconView FVS 2010 FvOverlay Interfaces

6 File-based overlay types
If a FileOverlayTypeDescriptor is specified in the configuration file, then implementing IFvOverlayPersistence is required Methods: FileNew, FileOpen, and FileSaveAs Properties: FileSpecification (read-only), HasBeenSaved, IsDirty, IsReadOnly FVS 2010 FvOverlay Interfaces

7 Implement IFvOverlayRenderer on the overlay object
Overlay Rendering Implement IFvOverlayRenderer on the overlay object OnDraw called to render to a surface Screen Printer DIB Receive current map projection for geographic to projected coordinate system transforms FVS 2010 FvOverlay Interfaces

8 User Interface Events Implement IFvOverlayUIEvents on the overlay object Mouse move, mouse buttons down/up, mouse wheel, double-click, and key up/down events Events are routed from the top-most overlay in the overlay stack to the bottom-most overlay until an overlay handles the event Implement IFvOverlayUIEventRoutingOverrides to override default event routing behavior Note that drag-drop of overlay objects can be handled by this interface Example of event routing overrides (MTR overlay) FVS 2010 FvOverlay Interfaces

9 Context Menu Support Implement IFvOverlayContextMenu on the overlay object AppendMenuItems called when user right-clicks on the map, passed an IFvContextMenu Call AppendMenuItem passing in a context menu item object Context menu item object should implement the IFvContextMenuItem interface MenuItemEnabled MenuItemName MenuItemSelected FVS 2010 FvOverlay Interfaces

10 IFvPlaybackEventsObserver
Notifications of playback started/stopped, playback time changed, playback rate changed IFvPlaybackTimeInterval Used to specify an time interval for overlay FVS 2010 FvOverlay Interfaces

11 Copy and Paste Operations
IFvOverlayCopyPaste Copy and paste from “clipboard” Handling dropping of IDataObject FVS 2010 FvOverlay Interfaces

12 IFvOverlaySnappablePoints
Allow other overlays to snap-to objects in your overlay FVS 2010 FvOverlay Interfaces

13 FalconView 4.2.1 interfaces
Other optional interfaces and their capabilities Render to the base map IFvOverlayBaseMapRenderer Enumeration of overlay IFvOverlayElement elements IFvOverlayElementEnumerator Point Export IFvOverlayExportablePoints Overlay Type Override IFvOverlayTypeOverrides Vertical View Rendering IFvOverlayVerticalViewRenderer IFvOverlayVerticalViewUIEvents FVS 2010 FvOverlay Interfaces

14 Optional Objects Editor Object single object created per overlay type
Manages the editor state, UI, and toolbar IFvOverlayEditor ActivateEditor DeactivateEditor DefaultCursor EditorToolbar OnToolbarButtonClick FVS 2010 FvOverlay Interfaces

15 IFvOverlayPropertyPage
Optional Objects Property Page FvOverlayPropertyPages.xml IFvOverlayPropertyPage OnCreate OnApply FVS 2010 FvOverlay Interfaces

16 Optional Objects Runtime Enable Allow runtime disabling of an overlay
i.e. Required resources not available (e.g., ArcEngine) Most overlays will not require this IFvOverlayTypeRuntimeEnabled IsOverlayTypeEnabled FVS 2010 FvOverlay Interfaces

17 File Overlay Type Descriptor
Optional Objects File Overlay Type Descriptor Runtime specification of file specifics Normally specified in configuration IFvFileOverlayTypeDescriptor GetDefaultDirectory GetDefaultFileExtension GetFileDialogFilter FVS 2010 FvOverlay Interfaces

18 Optional Objects Custom Initializer
Optionally implemented to initialize an overlay type during the startup sequence Unusual object ~ can slow startup time IFvCustomInitializer InitializeAtStartup( IFvSplashWnd pFvSplashWnd, IFvOverlayManager pFvOverlayManager) TerminateAtShutdown() FVS 2010 FvOverlay Interfaces

19 Questions? Comments? Presenters: George Menhorn Daniel Longhurst
Georgia Tech Research Institute FVS 2010 FvOverlay Interfaces

Download ppt "The FalconView Overlay Wizard"

Similar presentations

Ads by Google