0

bing maps componentsカスタムタイルを使用してWP7のC#で使用しています。
オーバーライドMicrosoft.Phone.Controls.Maps.TileSourceします。すべてOKです。タイルを使用できます。

しかし、全世界がないので、パンを1つの都市に限定したいですか?

MapDragEventArgsパンをチェックしてブロックするために使用するのは正しいですか?

private void map_MapPan(object sender, MapDragEventArgs e)
{
  Map m = (Map)sender;
  // something...?
}

...または他の何かをオーバーライドする必要がありますか?その場合、何をオーバーライドする必要がありますか?

ありがとう。

4

2 に答える 2

1

私はWindowsPhone7でBingMapsを使用したことがないので、ドキュメントだけを見て、次のようにします。

  1. ビューの境界矩形が定義されたタイル領域内に収まるように、常にマップを初期化します。
  2. ViewChangeStartイベントにバインドします。(またはViewChangeOnFrameの場合、どちらを使用するかを実験して把握する必要があります)
  3. ViewChangeStartのハンドラー内で、TargetBoundingRectangleがタイルカバレッジエリアの外に適切に収まっているかどうかを確認します。
  4. TargetBoundingRectangleがカバレッジ領域外にある場合は、ビューの変更をキャンセルする方法を見つけるか、境界矩形を以前の有効な状態に手動で戻します。

すべてが期待どおりに機能すると仮定すると、これにより、ユーザーのマップナビゲーションが制限された領域に制限され、ユーザーがナビゲートした後にビューが別の場所に「スナップ」して戻る動作が回避されます。

于 2013-03-01T18:08:06.527 に答える
0

簡単に実行でき、最善のアプローチは、ViewChangeEndイベントを使用して、マップをカバレッジエリアに戻すことです。

これを行うには、MSDNリファレンスを参照してください。

http://msdn.microsoft.com/en-us/library/microsoft.phone.controls.maps.core.mapcore.viewchangeend(v=vs.92).aspx

于 2013-03-01T13:02:20.543 に答える