⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpsstatus.java

📁 GPS Track connects to a GPS and records the path that you travel. Tracks can be uploaded to a web s
💻 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 + -