1

そのため、wp7 以降 BingMapsTask を使用して、ユーザーがアプリで選択した特定の場所を表示しています。しかし、wp8 以降、動作が変更されました。BingMapsTaks を引き続き使用するにはどうすればよいですか?

このコードを実行するには、地域設定を BELGIUM - DUTCH に変更してください。これを行うと、コードは WP7 エミュレーターで正しい場所を表示しますが、WP8 では表示されません! (設定と結果については画像を参照してください) GitHub のデモアプリ

GeoCoordinate location = new GeoCoordinate(51.40205, 4.46802);

BingMapsTask task = new BingMapsTask();
task.Center = location;
task.SearchTerm = location.ToString();
task.ZoomLevel = 9;
task.Show();

地域設定

良い

良い結果

悪い

悪い結果

4

3 に答える 3

2

BingMapsDirectionTask で似たようなものを見たことがあると思います: 電話の地域設定が米国に設定されている場合にのみ機能しました。その解決策は、タスクを起動する前に現在のスレッドのカルチャを設定することでした:

            BingMapsDirectionsTask Direction = new BingMapsDirectionsTask();
            LabeledMapLocation start = new LabeledMapLocation(...);
            LabeledMapLocation End = new LabeledMapLocation(...);
            Direction.Start = start;
            Direction.End = End;

            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
            Direction.Show();

(この問題の詳細については、MSDN フォーラムなどを参照してください。)

残念ながら、それは BingMapsTask では機能しないようです。問題は SearchTerm にあります。これを削除すると、マップは正しく中央に配置されているように見えますが、PushPin は表示されません。

選択した座標のアドレスを知っていますか? その場合、SearchTerm をそのアドレスに変更すると、機能するはずです。

たとえば、これは正しい場所を表示する必要があります。

        GeoCoordinate location = new GeoCoordinate(51.40205, 4.46802);

        BingMapsTask task = new BingMapsTask();
        task.Center = location;
        task.SearchTerm = "Noordeind 51, 2920 Kalmthout, Belgia";
        task.ZoomLevel = 9;
        task.Show();
于 2013-10-21T12:18:35.317 に答える
0

問題が Windows Phone 8 である場合は、WP8 で推奨されている MapsTask を使用することをお勧めします!

また、代わりにToString()試す代わりにToString(CultureInfo.InvarianCulture)

于 2013-10-20T17:14:57.773 に答える
0

WP7 の場合は BingMapsTask を使用し、WP8 の場合は MapsTask を使用します。

于 2013-10-20T17:15:35.613 に答える