📄 gpsstatus.java
字号:
// J2ME GPS Track
// Copyright (C) 2006 Dana Peters
// http://www.qcontinuum.org/gpstrack
package org.qcontinuum.gpstrack;
import javax.microedition.lcdui.*;
import henson.midp.Float;
import org.qcontinuum.astro.*;
import java.util.*;
public class GpsStatus extends Form implements CommandListener {
private StringItem mTimeStringItem, mLatitudeStringItem, mLongitudeStringItem;
private StringItem mAltitudeStringItem, mHeadingStringItem, mSatellitesStringItem;
private StringItem mFixStringItem;
private Preferences mPreferences;
private Gps mGps;
private Command mNextCommand, mStopCommand;
private static final Float mMetresToFeet = new Float(3281, -3);
private static final Float mKmhToMph = new Float(6214, -4);
public GpsStatus() {
super("GPS Status");
mPreferences = GpsTrack.getPreferences();
mGps = GpsTrack.getGps();
append(mTimeStringItem = new StringItem("GMT:", " \n"));
append(mLatitudeStringItem = new StringItem("Latitude:", " \n"));
append(mLongitudeStringItem = new StringItem("Longitude:", " \n"));
append(mAltitudeStringItem = new StringItem("Altitude:", " \n"));
append(mHeadingStringItem = new StringItem("Heading:", " \n"));
append(mSatellitesStringItem = new StringItem("Satellites:", " \n"));
append(mFixStringItem = new StringItem("Fix:", " \n"));
addCommand(mStopCommand = new Command("Stop", Command.STOP, 0));
addCommand(mNextCommand = new Command("Next", Command.SCREEN, 0));
setCommandListener(this);
}
public void timerTick() {
getGpsInfo();
}
public void commandAction(Command c, Displayable d) {
if (c == mNextCommand) {
GpsTrack.display(GpsTrack.getGpsSatellites());
} else if (c == mStopCommand) {
GpsTrack.stop();
}
}
private void getGpsInfo() {
int unitType = mPreferences.getUnitType();
UtcDate utcDate = mGps.getUTCDate();
if (utcDate != null)
mTimeStringItem.setText(utcDate.toString() + "\n");
EarthPosition earthPosition = mGps.getEarthPosition();
if (earthPosition != null) {
mLatitudeStringItem.setText(GpsTrack.floatToString(earthPosition.getLatitude(), 4) + "癨n");
mLongitudeStringItem.setText(GpsTrack.floatToString(earthPosition.getLongitude(), 4) + "癨n");
}
Float altitude = mGps.getAltitude();
if (altitude != null) {
switch (unitType) {
case Preferences.UNITTYPE_METRIC:
mAltitudeStringItem.setText(GpsTrack.floatToString(altitude, 0) + " m\n");
break;
case Preferences.UNITTYPE_US:
mAltitudeStringItem.setText(GpsTrack.floatToString(altitude.Mul(mMetresToFeet), 0) + " ft\n");
break;
}
}
Float heading = mGps.getHeading();
if (heading != null)
mHeadingStringItem.setText(GpsTrack.floatToString(heading, 0) + "癨n");
mSatellitesStringItem.setText(mGps.getSatelliteCount() + "\n");
mFixStringItem.setText(mGps.getFix() ? "Yes\n" : "No\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -