0

GPS形式で数学を計算するAndroidアプリケーションを作成しています。

例:

与えられた

N 48°44.(30x4) E 019°08.[(13x31)+16]

アプリはそれを計算し、結果は次のとおりです。

N 48°44.120 E 019°08.419

これを行うことは可能ですか?

プラグインと解決策を探しましたが、「14 + 6」のような数学の文字列だけです。

4

2 に答える 2

1

質問でタグ付けされているように、Javaで作業していると思います。

GPS 座標の新しいパブリック クラスを作成し、座標の実際の値を最下位の区分に格納することができます。これは、例によれば、分または秒のように見えます。これにより、任意の精度で値を int または double として格納できます。次に、private メソッドと public メソッドのセットを作成して数学演算を完了し、他のメソッドを使用して適切な方法で値を表示できます。

public class GPSCoordinate {

    private double verticalcoord;
    private double horizontalcoord;

    //Constructors
    GPSCoordinate(){
        setVertical(0);
        setHorizontal(0);
    }

    GPSCoordinate(double vert, double horiz){
        setVertical(vert);
        setHorizontal(horiz);
    }

    //Display methods
    public String verticalString(){
        return ((int)verticalcoord / 60) + "°" + (verticalcoord - ((int)verticalcoord / 60) *60);
    }

    public String horizontalString(){
        return ((int)horizontalcoord / 60) + "°" + (horizontalcoord - ((int)horizontalcoord / 60) *60);
    }

    //Setting Methods
    public void setVertical(double x){
        this.verticalcoord = x;
    }

    public void setHorizontal(double x){
        this.horizontalcoord = x;
    }

    //Math Methods
    public void addMinutesVertical(double x){
        this.verticalcoord += x;
    }
}

これにより、特定の GPS 座標を使用してメイン コードでインスタンスを開始し、それに対して数学関数を呼び出すことができます。

GPSCoordinate coord1 = new GPSCoordinate(567.23, 245);
coord1.addMinutesVertical(50);
coord1.otherMathFunction(50 * 30);

もちろん、プロジェクトに合うように上記を調整する必要があります。これが役に立たない場合は、より詳細な情報を提供してください。探しているものに合う可能性のある他のものを考えられるかどうかを確認します.

于 2013-07-01T18:46:47.390 に答える
0

substring全体だけを検索して、括弧内の式を検索することはできませんか? あとは簡単な計算です。私が質問を正しく理解していれば。math()GPS データは通常の式とは異なるため、直接適用することはできません。

于 2013-07-01T15:13:44.763 に答える