/// <summary> /// 添加船舶 /// </summary> /// <param name="strCurShipInfos">船舶信息字符串,格式为:shipid,mmsi,name,geoX,geoY,course,speed,state,time_....</param> /// <returns>返回值:true=添加成功,false=添加失败</returns> public static bool AddShipsByStringInfos(string strCurShipInfos) { bool bResult = false; if (!strCurShipInfos.Equals("")) { string[] arrShipInfoValue = strCurShipInfos.Split(new char[1] { '_' });; int iCurAddShipCount = arrShipInfoValue.Length; for (int i = 0; i < iCurAddShipCount; i++) { string[] arrCurShipAtrr = arrShipInfoValue[i].Split(new char[1] { ',' }); int iCurShipAtrrCount = arrCurShipAtrr.Length; ShipInfo curShipInfo = new ShipInfo(); if (iCurShipAtrrCount > 8) { curShipInfo.iShipId = Convert.ToInt32(arrCurShipAtrr[0]); //shipid curShipInfo.iShipMmsi = Convert.ToInt32(arrCurShipAtrr[1]); //mmsi; curShipInfo.strShipName = arrCurShipAtrr[2].ToString(); //name curShipInfo.iShipGeoX = Convert.ToInt32(arrCurShipAtrr[3]); //geoX curShipInfo.iShipGeoY = Convert.ToInt32(arrCurShipAtrr[4]); //geoY curShipInfo.dShipCourse = Convert.ToDouble(arrCurShipAtrr[5]); //course curShipInfo.dShipSpeed = Convert.ToDouble(arrCurShipAtrr[6]); //speed curShipInfo.iShipState = Convert.ToInt32(arrCurShipAtrr[7]); //state curShipInfo.dtInfoTime = Convert.ToDateTime(arrCurShipAtrr[8]); //time SHIP_MAN.AddOneShip(curShipInfo); bResult = true; } } } return(bResult); }
/// <summary> /// 添加一艘船舶,假如该船舶存在,那么就更新 /// </summary> /// <param name="curShipInfo">当前船舶的结构体</param> /// <returns>返回船舶在数组中的posid</returns> public static int AddOneShip(ShipInfo curShipInfo) { if (m_iCurShipCount > m_iMaxShipCount) { m_iMaxShipCount--; } int iShipPos = 0; bool bShipInArr = GetCurShipPosInArr(curShipInfo.iShipMmsi, ref iShipPos); if (bShipInArr) { m_arrShipInfo[iShipPos].UpdateShipInfo(curShipInfo.iShipGeoX, curShipInfo.iShipGeoY, curShipInfo.dShipSpeed, curShipInfo.dShipCourse, curShipInfo.iShipState, curShipInfo.dtInfoTime); } else { m_arrShipInfo[iShipPos] = curShipInfo; m_iCurShipCount++; } return(iShipPos); }