0

Windows Phone 8 でマップ コントロールに取り組んでいます。MapPolyLine フィールド変数を宣言しました。

private MapPolyline _line;

メイン ページを初期化した後、これをマップ コントロールに追加します。

_line = new MapPolyline();
_line.StrokeColor = Colors.Red;
_line.StrokeThickness = 5;
Map.MapElements.Add(_line);

PositionChanged イベントで、この状態をチェックします。

if (_line.Path.Count > 0)

次に、この行に応じてマップを更新します。すなわち

var previousPoint = _line.Path.Last();
var distance = coord.GetDistanceTo(previousPoint);`
var coord = new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude);

Map.Center = coord;
_line.Path.Add(coord);

しかし、不正アクセス、クロススレッド例外が発生します。だから私はこの下に「if」条件を含むすべてのコードを入れようとしました

Dispatcher.BeginInvoke(() =>
{
    // Update Map
});

例外はスローされなくなりましたが、マウスを _line.Path.Count の上に置くと例外がスローされますが、唯一の違いは例外がスローされないことです。

場所をまだ移動または変更していないためですか? わかりませんが、同じことについて何か助けてください。

前もって感謝します。

4

0 に答える 0