public void UpdateLabelLocation(GPSTrackingMonitor.Communications.MessagePool trackingMessagePool) { if (trackingMessagePool == null || trackingMessagePool.Count == 0) { return; } MapObjects2.Point oCarLocation = new MapObjects2.PointClass(); MapObjects2.TextSymbol oLabelSymbol = new MapObjects2.TextSymbolClass(); oLabelSymbol.Font.Name = "Arial"; oLabelSymbol.Font.Size = 8; oLabelSymbol.Color = (uint)MapObjects2.ColorConstants.moYellow; oLabelSymbol.HorizontalAlignment = MapObjects2.AlignmentConstants.moAlignCenter; oLabelSymbol.VerticalAlignment = MapObjects2.AlignmentConstants.moAlignCenter; int iGeoEventCount = this._trackingLayer.EventCount; MapObjects2.GeoEvent oGeoEvent = null; double dVerticalOffset = this._mapControl.ToMapDistance(10f); for (int i = 0; i < iGeoEventCount; i++) { oGeoEvent = this._trackingLayer.get_Event(i); oCarLocation.X = oGeoEvent.X; oCarLocation.Y = oGeoEvent.Y + dVerticalOffset; this._mapControl.DrawText(oGeoEvent.Tag, oCarLocation, oLabelSymbol); } }
public void UpdateCarLocation(GPSTrackingMonitor.Communications.MessagePool trackingMessagePool) { MapObjects2.Point oCarLocation = new MapObjects2.PointClass(); MapObjects2.GeoEvent oGeoevent = null; GPSTrackingMonitor.Communications.MessagePool.ValueCollection oTrackingMessages = trackingMessagePool.Values; foreach (CommnicationMessage.GPSTrackingMessage oTrackingMessage in oTrackingMessages) { oCarLocation.X = oTrackingMessage.X; oCarLocation.Y = oTrackingMessage.Y; oGeoevent = this._trackingLayer.FindEvent(oTrackingMessage.CarNumber); if (oGeoevent == null) { // this.AddCustomSymbol(oTrackingMessage.CarNumber); oGeoevent = this._trackingLayer.AddEvent(oCarLocation, this._carSymbolIndex); oGeoevent.Tag = oTrackingMessage.CarNumber; } else { if (oGeoevent.X == oTrackingMessage.X && oGeoevent.Y == oTrackingMessage.Y) { continue; } oGeoevent.MoveTo(oTrackingMessage.X, oTrackingMessage.Y); } } this._trackingLayer.Refresh(true, this._mapControl.Extent); }
private void CarInfosReceiver_ProcessMessageEvent(object sender, GPSTrackingMonitor.Communications.MessageArguments e) { this._currentMessageCollection = e.MessageCollection; Invoke((MethodInvoker)delegate { this._geoeventUpdate.UpdateCarLocation(e.MessageCollection); }); }
private void CarInfosReceiver_ProcessMessageEvent(object sender, GPSTrackingMonitor.Communications.MessageArguments e) { this._currentMessageCollection = e.MessageCollection; Invoke((MethodInvoker)delegate { this._geoeventUpdate.UpdateCarLocation(e.MessageCollection); }); }