1 / 10

IRealTimeTrackerOverlay

RealTimeTrackerServer Methods Load(string filename) : IRealTimeTrackerOverlay – File must be windows file uri NewOverlay() : IRealTimeTrackerOverlay – Create new, unsaved, default name Close(IRealTimeTrackerOverlay) – may need ability to veto close Close(id)

andie
Télécharger la présentation

IRealTimeTrackerOverlay

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. RealTimeTrackerServer Methods Load(string filename) : IRealTimeTrackerOverlay – File must be windows file uri NewOverlay() : IRealTimeTrackerOverlay – Create new, unsaved, default name Close(IRealTimeTrackerOverlay) – may need ability to veto close Close(id) SetCurrentTime(Time) – Used for playback AddToolbar(string bitmapFileName, int options, int spacers…, delegate) – at the top AddEditorButton(Button, Callback) – add a toolbar to the right that shows up when the editor is on Follow(IPointSymbol, bool autoRotate, bool follow) - rotation, center Properties Overlays : ICollection – List of currently open overlays implies top/bottom ordering (First in list is “active” rtt overlay) OverlayOptionsControl – OCX control that is embedded in the Overlay Options dialog – Not sure if this is possible MapControl – Reference to the IMapControl object EditorIsOn – Readonly. Is the editor currently on? CurrentFollowedPointSymbol : IPointSymbol – The current object being followed IsTimeSensitive - For Playback, set to True if one or more rtt overlays can show data for a time span. Events DragEnter – Fired when user drags object that enters the map area. Return value is true/false. DragDrop – Fired when user drops object onto map area. OverlayAdded – Fired when an RTTOverlay is added via user or New() call OverlayClosed – Fired when user closes RTTOverlay or Close() is called. OverlayOpened – An RTTOverlay file has been opened or Load() is called. ButtonClicked – When toolbar button (from the AddToolbar call) is pressed. EditorButtonClicked – When editor toolbar button (from AddEditorButton) is pressed. EditorIsOnChanged – Fired when EditorIsOn property changes state. KeyDown(out bool handled) – Fired when any key is pressed on the map. NextTimeStep(Time) - Be notified of the current time. fvw.ILayerEditor3 IMapControl GetNextMouseClick(ClickDelegate) – Queue up a request to get the next moust click. Result is called back on the ClickDelegate provided. Properties Rotation Zoom MapScale Center 1 1 1 1 IRTTClient Connet(RealTimeTrackerServer) Disconnect() 1 0..n IRealTimeTrackerOverlay

  2. RealTimeTrackerOverlay Add(IOverlayElement) Remove(int OverlayElementID) Save() – Initiate a programatic save. (Same as user clicking file-save) SetTimeSpan(int begin, int end) - Setup Playback to use a historical time period Properties Filename – Current file name. Id – falconview assigned id, read only LabelsVisible – A overlay wide preference indicating if labels on symbols should be shown. OverlayElements : ICollection SelectedOverlayElements : ICollection – Set of currently selected overlay elements. Empty set if nothing selected. Events AskMenuItems(out MenuItem[], IOverlayElement[] selectionSet) – Get the list of right click menu items for the current object(s). Each subscriber to this event has the opportunity to add to the MenuItems. Save(string filename) – Fired to allow client to persist MenuItem Name : string FireCallback : FireDelegate

  3. ISymbolFactory Create(string symbolID) : IOverlayElement – instantiate object using a well known symbology code (ie MS2525B code or “TargetSilouette”) CreateImage(string symbolID) : System.Drawing.Image CreatePointSymbol(string symbolID) : IPointSymbol CreatePointSymbol() : IPointSymbol CreatePointSymbol(Image PrimaryImage) : IPointSymbol CreateMultiPointSymbol(string symbolID) : IMultiPointSymbol Note: Abstract Factory Pattern NatoSymbolFactory (for example) 2525BSymbolFactory Implementation note – calls GSD to generate images, intellegently reuses images to reduce memory overhead (flyweight pattern) Create(string symbolID) : IOverlayElement – instantiate 2525B decorated object CreateImage(string symbolID) : System.Drawing.Image CreatePointSymbol(string symbolID) : 2525BPointSymbol CreatePointSymbol() : 2525BPointSymbol CreatePointSymbol(Image PrimaryImage) : 2525BPointSymbol CreateMultiPointSymbol(string symbolID) : 2525BMultiPointSymbol Sample Point ID Mapping

  4. IOverlayElement Properties Duration – Time out display of elements on map, -1 means indefinite (time out causes Visible set to false) UniqueID – Assigned by FV. At least unique within overlay. Visible – If true, shown on map. If false, not shown, but object is still in memory. Selected : bool – The object is currently selected on map. Shows on map as highlighted in some fashion AllowUserMove – User can drag the object to a new location on the map. SymbolID – String, used to identify type of symbol. For IPoint2525BSymbol types, this is a 2525B symbol code Name – Human readable, nick name, etc. Overlay : IRealTimeTrackerOverlay – Readonly. Returns the parent overlay Events SelectionChangedEvent(bool selected) – Fired when Selected bool changes state. MouseOver(out Cursor c, out string tooltip, out string help) : – (single delegate)Fired on Mouse over. (a.k.a. TestSelected) DoubleClicked – Entity was double clicked NameChanged – Name was changed by user or via Name property GetInfo(string rtfOrHtml) – (single delegate) Details window. Readonly feature builtin to FV Methods. Void Draw(…) Bool Within(int lat1, int lat2, int lon1, int lon2) IMultiPointSymbol Properties Locations IPointSymbol Point2525BSymbol Properties 2525BModifers : xml string OR object AllowUserSymbolModify Affiliation Organization MultiPoint2525BSymbol Properties 2525BModifiers 2525BSymbolCode

  5. IPointSymbol Methods InsertDecorator(IPointDecorator, Location location) RemoveDecorator(IPointDecorator) RemoveDecorator(int Position) RemoveAllDecorators() TrackPoints(TimeSpan duration) – track points; remember the tracks for the duration TrackPoints(int numberOfPoints) – track points; remember the last “numberOfPoints” Properties DecoratorWedges DecoratorLabels DecoratorImages PrimaryDecorator ScaleFactor – The current scale – depends on scales supported by symbol Location – Current coordinate in Lat/Long WGS84 Elevation – meters above MSL Heading – Used to auto rotate when following. Events LocationChanged – Fired when Location property changes ElevationChanged – Fired when Elevation property changes TrackPointParent TrackPoints : IPointSymbol[] SymbolImage Properties Position – use constants Image Label Properties Position – use constants Text 1 HeadingArrow Properties Direction – degreees Color Length/Range/Speed? 1..* IPointDecorator Properties Priority – higher value indicates closer to “top” of symbol Name – ie “Weapon Range”, “Hit Counter” Attributes Enum locations{center,top,bottom,left,right} Methods void Draw(…) Wedge Properties Range – meters Arc – degrees Direction – degreees Closed – boolean Color Fill – patterns?

  6. IOverlayElement MilStd2525bSymbolFactory IMultiPointSymbol Properties Coordinates: ordered ArrayList Filled: bool Fill : Brush Line : Pen Events MultiPointSymbolChanged LiveTrainingSymbolFactory ConstructedBattlePosition FirstPoint: Coord OptSecondPoint: Coord OptThirdPoint: Coord OptFourthPoint: Coord PolyLineSymbol Closed: bool RadialSymbol Radius: float Foci: Coord[] FiringBox Kind: {Whole, FirstHalf, SecondHalf} ImpactArea FiringPosition: Coord ImpactArea: IMultiPointSymbol Lethal: bool Acquired: bool Track Target: IPointSybmol

  7. Create(“123”) New(System.Drawing.Image) New New New RetrieveFromTable Create(“123”) New IPointSymbol (B) IPointSymbol (A) Time passes PrimaryDecorator PrimaryDecorator Creating multiple IPointSymbol (2525B) from Scratch Note: Only the RealTimeTrackerClient knows about the symbol factory: no other objects need that information (Flyweight pattern). MapControl 2525B SymbolFactory 2525BPoint Symbol (A) System.Drawing.Image SymbolImage 2525BPoint Symbol (B)

  8. Draw DrawPrimaryDecorator Draw Draw Draw Draw DrawPrimaryDecorator Drawing multiple IPointSymbol (2525B) of the same symbol (ie “123”) IRTTOverlay IPointSymbol (A) System.Drawing.Image SymbolImage IPointSymbol (B)

  9. DragLeave DragEnter GetOverlays PointSymbolFactory Location New Drag and Drop FV IRealTimeAdapter IRealTimeOverlay MapController ObjPalette serialize DragEnter DragEnter(buffer) yes yes DragDrop DragDrop[(buffer) IPoint2525B Factory IPoint2525B LocationChanged subscribe Add(PointSymbol) Add to quadtree

  10. Toolbutton Pressed() Click Insert Toolbutton Toolbutton Pressed() ClickEvent() Click(X,Y) ClickEvent() Click(X,Y) Click Insert Toolbutton PolyLineInsertModeEntered Time passes Time passes Time passes Summary: User clicks to activate a polyline insertion tool. Toolbutton stays depressed to indicate the mode to the user. Points are created for each click, polyline (XOR brush) is used to link multiple points. Points are tied to coordinates, therefore changes to map data or zoom levels should behave accordingly. Points/Lines will be placed on currenty active RTT overlay. All points/lines are temporary, and should be removed when the toolbutton is no longer depressed. There is no complete/cancel as that will be determined by the client. In general, should behave much like the drawing editor polyline tool. User RTTClient RTTServer RTTOverlay FV GetNextClick() Designed but not implemented Add Point(Coord) Add PolyLine Add Point(Coord) Update PolyLine PolyLineInsertModeExited(Coords) Remove Points Remove PolyLine ButtonDepressed(False)

More Related