private void Instance_OnHolographicInfoChanged(HolographicInfo obj) { for (int i = 0; i < points.Count; i++) { Point point = points[i]; //_spaceTransformer.Pt2Xy(obj.fHorizontalValue, obj.fVerticalValue, obj.struPtzPos.fPanPos, obj.struPtzPos.fTiltPos, point.X, point.Y, out double x, out double y); Point tagPoint = _spaceTransformer.AngleLocationToScreenLocation(point.X, point.Y, obj.CameraParameter); TagCollection[i].Location = tagPoint; } }
private void MiAddTag_Click(object sender, RoutedEventArgs e) { string devId = "test"; HolographicInfo holographicInfo = HolographicInfoCache.Instance.GetHolographicInfoByDeviceId(devId); if (string.IsNullOrEmpty(holographicInfo.Id)) { LogHelper.Default.DebugFormatted("获取设备id:{0} 的全息信息失败,无法计算标签位置", devId); return; } PTZ ptz = _spaceTransformer.ScreenLocationToAngleLocation(_mouseRightClickPosition, holographicInfo.CameraParameter); TagConfigWindow tagConfigWindow = new TagConfigWindow(); tagConfigWindow.Owner = Window.GetWindow(this); tagConfigWindow.Show(); }
private void Instance_OnGisInfoChanged(CHCNetSDK.NET_DVR_GIS_UPLOADINFO obj) { HolographicInfo holographicInfo = new HolographicInfo() { CameraParameter = new CameraParam() { HorizontalFieldOfView = obj.fHorizontalValue, VerticalFieldOfView = obj.fVerticalValue, Pan = obj.struPtzPos.fPanPos, Tilt = obj.struPtzPos.fTiltPos, Zoom = obj.struPtzPos.fZoomPos, }, GeoInfo = new GeographicInfo() { }, Id = "test", }; _holographicInfoDict.AddOrUpdate(holographicInfo.Id, holographicInfo, (oldKey, oldValue) => holographicInfo); OnHolographicInfoChanged?.Invoke(holographicInfo); }