/// <summary> /// 历史回放模式 /// </summary> //public bool HistoryMode { get; set; } bool RefreshState(NEWTRACK gps, string fieldName = null, bool noWeb = false) { if (gps == null) { return(false); } CarStatus.RefreshStatus(gps.STATUS, gps.STOPTIME); //车辆状态 OnPropertyChanged(nameof(CarStatus), true); AlarmStatus.RefreshAlarmStatus(gps.ALARM); OnPropertyChanged(nameof(AlarmStatus), true); if (gps.IsRealTime || _isCopy || (!gps.IsRealTime && !_isCopy)) { //在线或者历史回放状态刷新 if (!_isCopy && (CarStatus.offline == true || !gps.IsRealTime)) { //车辆下线 CarState = CarState.OffLine; } else { //在线状态下 if (AlarmStatus.HasAlarm) { //报警状态 CarState = CarState.Alarm; if (!_isCopy) { OnHaveNewAlarm(AlarmType.Normal); //新的报警 } } else if (gps.LOCATE != 1) //不定位 { CarState = CarState.NoGps; } else if (gps.SPEED >= 3) //行驶中 { CarState = CarState.Run; } else { //速度小于3km/h 认定为停车(可去除部分漂移) CarState = CarState.Stop; } } } else { //不在线状态判断 CarState = CarState.OffLine; } if (noWeb) { return(true); } if (!gps.IsRealTime) { return(true); } if (CarStatus.blindarea_status) { return(true); } if (!NEWTRACK.IsWebPosition) { return(true); } if (!IsInView) { return(true); } if (!GPSTool.CheckLaLo(gps.LATITUDE, gps.LONGITUDE)) { return(true); } GeoLatLng geo = GPSTool.wgs84togcj02(gps.LONGITUDE, gps.LATITUDE); geo.longitude = Math.Round(geo.longitude, 6); geo.latitude = Math.Round(geo.latitude, 6); Common_liby.InvokeMethodOnMainThread(() => { HtmlPage.Window.Invoke("GetWebPosition", geo.longitude, geo.latitude, MAC); }); return(false); }