177.
178. {
179.
180. subStr[i] = GetSubStr(str,i,cFlag);
181.
182. }
183.
184.
185.
186. //GPGGA数据
187.
188. if (subStr[0] == "$GPGGA")
189.
190. {
191.
192. CoordCovert(subStr[2],subStr[4]);
193.
194. //提取时间
195.
196. subStr[1].Insert(2,':
');
197.
198. subStr[1].Insert(5,':
');
199.
200. subStr[1].Insert(0," UTC时间:
");
201.
202.
203.
204. //提取纬度
205.
206. if (subStr[3] == 'N')
207.
208. {
209.
210. subStr[2].Insert(11,"分");
211.
212. subStr[2].Insert(2,"度");
213.
214. subStr[2].Insert(0," 北纬");
215.
216. }
217.
218. else if (subStr[3] == 'S')
219.
220. {
221.
222. subStr[2].Insert(11,"分");
223.
224. subStr[2].Insert(2,"度");
225.
226. subStr[2].Insert(0," 南纬");
227.
228. }
229.
230.
231.
232. //提取经度
233.
234. if (subStr[5] == 'E')
235.
236. {
237.
238. subStr[4].Insert(12,"分");
239.
240. subStr[4].Insert(3,"度");
241.
242. subStr[4].Insert(0," 东经");
243.
244. }
245.
246. else if (subStr[5] == 'W')
247.
248. {
249.
250. subStr[4].Insert(12,"分");
251.
252. subStr[4].Insert(3,"度");
253.
254. subStr[4].Insert(0," 西经");
255.
256. }
257.
258.
259.
260. //判断GPS状态
261.
262. CString GpsState;
263.
264.
265.
266. if (subStr[6] == '0')
267.
268. {
269.
270. GpsState = " GPS状态:
无定位.";
271.
272. }
273.
274. else if (subStr[6] == '1')
275.
276. {
277.
278. GpsState = " GPS状态:
无差分校正定位.";
279.
280. }
281.
282. else if (subStr[6] == '2')
283.
284. {
285.
286. GpsState = " GPS状态:
差分校正定位.";
287.
288. }
289.
290. else if (subStr[6] == '9')
291.
292. {
293.
294. GpsState = " GPS状态:
用星历计算定位.";
295.
296. }
297.
298.
299.
300. //提取卫星数
301.
302. subStr[7].Insert(0," 卫星数:
");
303.
304.
305.
306. //提取平面位置精度因子
307.
308. subStr[8].Insert(0," 平面位置精度因子:
");
309.
310.
311.
312. //天线海拔高度
313.
314. subStr[9].Insert(strlen(subStr[9]),subStr[10]);
315.
316. subStr[9].Insert(0," 天线海拔高度:
");
317.
318.
319.
320. //海平面分离度
321.
322. subStr[11].Insert(strlen(subStr[11]),subStr[12]);
323.
324. subStr[11].Insert(0," 海平面分离度:
");
325.
326.
327.
328. subStr[0] += subStr[1];
329.
330. subStr[0] += subStr[2];
331.
332. subStr[0] += subStr[4];
333.
334. subStr[0] += GpsState;
335.
336. subStr[0] += subStr[7];
337.
338. subStr[0] += subStr[8];
339.
340. subStr[0] += subStr[9];
341.
342. subStr[0] += subStr[11];
343.
344. //////////////////////////////////////MessageBox(subStr[0]);
345.
346. wFile.WriteString(subStr[0]);//将数据写入文件
347.
348.
349.
350. }
351.
352.
353.
354. //GPZDA数据
355.
356. else if (subStr[0] == "$GPZDA")
357.
358. {
359.
360. //提取时间
361.
362. subStr[1].Insert(2,':
');
363.
364. subStr[1].Insert(5,':
');
365.
366. subStr[1].Insert(0," UTC时间:
");
367.
368.
369.
370. //提取日期
371.
372. subStr[2].Insert(strlen(subStr[2]),"日");
373.
374. subStr[2].Insert(0,"月");
375.
376. subStr[2].Insert(0,subStr[3]);
377.
378. subStr[2].Insert(0,"年");
379.
380. subStr[2].Insert(0,subStr[4]);
381.
382. subStr[2].Insert(0,' ');
383.
384.
385.
386. //当地时域描述
387.
388. subStr[5].Insert(strlen(subStr[5]),"小时");
389.
390.
391.
392. if (strlen(subStr[6]) > 3)
393.
394. {
395.
396. subStr[6] = subStr[6].Left
(2);
397.
398. }
399.
400. else
401.
402. {
403.
404. subStr[6] = '0';
405.
406. }
407.
408.
409.
410. subStr[6] += "分";
411.
412. subStr[6].Insert(0,subStr[5]);
413.
414. subStr[6].Insert(0," 当地时域:
");
415.
416.
417.
418. subStr[0] += subStr[1];
419.
420. subStr[0] += subStr[2];
421.
422. subStr[0] += subStr[6];
423.
424. //////////////////////////////MessageBox(subStr[0]);
425.
426. wFile.WriteString(subStr[0]);//将数据写入文件
427.
428. }
429.
430.
431.
432. //GPGSA数据
433.
434. else if (subStr[0] == "$GPGSA")
435.
436. {
437.
438. //卫星捕获模式,以及定位模式
439.
440. CString CatchLocation;
441.
442.
443.
444. if (subStr[1] == 'M')
445.
446. {
447.
448. if (subStr[2] == '1')
449.
450. {
451.
452. CatchLocation = " 手动捕获卫星,未定位!
";
453.
454. }
455.
456. else if (subStr[2] == '2')
457.
458. {
459.
460. CatchLocation = "