如何阻止bing map pan来协调绑定?

时间:2013-03-01 12:08:48

标签: c# windows-phone-7 c#-4.0 bing-maps

我在C#中使用bing maps components用于WP7和我的自定义磁贴 我重写Microsoft.Phone.Controls.Maps.TileSource,一切正常,我可以使用我的瓷砖。

但是,因为没有整个世界,我想限制只在一个城市范围内的平底锅?

使用MapDragEventArgs检查并阻止pan ??

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

......或者我需要覆盖别的东西?在这种情况下,我需要覆盖什么?

感谢。

2 个答案:

答案 0 :(得分:1)

我没有在Windows Phone 7上使用过Bing Maps,所以完全按照文档进行操作,我会做以下事情:

  1. 始终初始化地图,使其视图边界矩形位于您定义的图块区域内。
  2. 绑定到ViewChangeStart事件。 (或ViewChangeOnFrame,您将不得不进行实验并找出要使用的内容)
  3. ViewChangeStart的内部处理程序,检查TargetBoundingRectangle是否正确地落在了您的图块覆盖区域之外。
  4. 如果TargetBoundingRectangle落在您的覆盖范围之外,请找出取消视图更改的方法或手动将边界矩形设置回上一个有效状态。
  5. 假设一切都像我期望的那样,这应该限制用户地图导航到您的有限区域,并避免在用户导航后视图“捕捉”回到其他地方的行为。

答案 1 :(得分:0)

您可以轻松做到并且最好的方法是使用ViewChangeEnd事件并将地图设置回您的覆盖范围。

请参阅MSDN参考:

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