質問

私は今日、Windows Phone 7デバイスからGPS座標を収集するためにかなりの時間を探していましたが、実際のテストデバイスがないので、実際のGPSデータの代わりに返されたいダミーデータを設定しようとしました。 ..しかし、それはあまりうまくいきません。このコードは、ここで見つけたSOからの部分的に例です。しかし、後でアクセスできるクラスに入れようとしました。

public class GetGPS : GeoCoordinateWatcher
{
    GeoCoordinateWatcher watcher;

    public GetGPS()
    {
        watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
        watcher.MovementThreshold = 20;

        watcher.PositionChanged += this.watcher_PositionChanged;
        watcher.StatusChanged += this.watcher_StatusChanged;
        watcher.Start();
    }

    private void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
    {
        switch (e.Status)
        {
            case GeoPositionStatus.Ready:
                //plingpling
                break;
            case GeoPositionStatus.Disabled:
                // location is unsupported on this device
                break;
            case GeoPositionStatus.NoData:
                watcher.Position.Location.Latitude = 54.086369f;
                watcher.Position.Location.Longitude = 12.124754f;
                break;
        }
    }

    private void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
    {
        var epl = e.Position.Location;

        // Access the position information thusly:
        epl.Latitude.ToString("0.000");
        epl.Longitude.ToString("0.000");
        epl.Altitude.ToString();
        epl.HorizontalAccuracy.ToString();
        epl.VerticalAccuracy.ToString();
        epl.Course.ToString();
        epl.Speed.ToString();
        e.Position.Timestamp.LocalDateTime.ToString();
    }
}

これは私がデータにアクセスしようとしている私の他のクラスです - しかし、私は常にlat1radとlong1radとしてナンを取得します...あなたは私を助けてくれませんか?

その例は、エミュレータ(固定GPS座標を使用)と電話7デバイスで機能することを望みます。実際に値をつかみます。

GetGPS location1= new GetGPS();

//GeoCoordinate myPosition = location1.getPosition();

//Radianten berechnen
double lat1Rad = GradZuRad(location1.Position.Location.Latitude);
double long1Rad = GradZuRad(location1.Position.Location.Longitude);

私は基本的に、現在のGPSポジションを返すクラスをプログラムしたいだけです。

役に立ちましたか?

解決

あなたの例コードはどこからですか?

を使用してみましたか MSDNのサンプル?

または、利用可能なGreate Simulatorがあります http://phone7.wordpress.com/2010/08/02/no-device-no-gps-no-matter-with-code/

他のヒント

なぜあなたはFRMOを導き出しているのですか GeoCoordinateWatcher?それは間違いです、IMO。自分のクラスのメンバーを使用していることと、委任されたインスタンスを使用していることが不明確になります。現時点では、委任されたウォッチャーの座標を設定していますが、 尋ねる からの座標の場合 GetGPS 直接インスタンス。

実装することをお勧めします IGeoPositionWatcher<GeoCoordinate> 独自の「固定」ポジションウォッチャーで - そして、それを使用するか実際のものを使用するかを決定します GeoCoordinateWatcher. 。明らかに、これはあなたのクライアントコードが依存する必要があることを意味します IGeoPositionWatcher<GeoCoordinate> それ以外の GeoCoordinateWatcher 直接。これは、単体テストの目的でも役立つはずです。

もちろん、ジョンの答えは非常に適切です - あなたは合理的なインターフェイスの抽象化を行っていないと思いますが、それを手に入れたときでさえ、シミュレートされたデータについては、あなたは WindPWS電話用のKevin WolfのGPSシミュレーター?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top