【问题标题】:Xamarin.Forms Map automatically focuses on user locationXamarin.Forms Map 自动关注用户位置
【发布时间】:2016-12-24 02:16:58
【问题描述】:

我正在 Xamarin.Forms 中创建一个Map,如下所示:

var map = new Map(MapSpan.FromCenterAndRadius(eventLoc, Distance.FromMiles(1)))
{
      IsShowingUser = true,
      MapType = MapType.Hybrid
};

这里,eventLoc 是一个Position,我希望我的地图最初应该关注它。虽然它是这样开始的,但当定位服务找到我的位置时,地图焦点会转到我的位置,因为我设置了IsShowingUser = true。然而,这不是我想要的。我正在写IsShowingUser = true,因为我也想在地图上显示我的位置,但不关注那里。

如何在显示我的位置的同时保持在我提供给地图的初始位置 (eventLoc)?

【问题讨论】:

  • IsShowingUser 是一个很差的功能,如果您希望能够以更好的方式控制 GPS/地图交互,我建议您实现自定义渲染器。
  • 我用来测试Xamarin.Forms.Maps 的Android 设备上的IsShowingUser 行为不会定位地图,它只是启用当前位置的“蓝点”和当前位置-右上角的位置小部件。直到我点击小部件才会将地图位置定位到当前位置。您使用的是 Android 还是 iOS?
  • 不,WinPhone 和 UWP。

标签: xamarin windows-phone xamarin.forms uwp


【解决方案1】:

我遇到了同样的问题,即希望显示用户的位置,但希望地图平移到目标图钉。在ContentPage.OnAppearing() 的最后,只需将地图移动到您希望它结束​​的位置:

double someLatitude  = 0;
double someLongitude = 0;


VendorMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(someLatitude, someLongitude), Distance.FromMiles(25)));

【讨论】:

  • 试过了,还是不行,因为定位服务可能会在 3-5 秒后找到我的位置。
  • @UgurcanYildirim 那么听起来您只需要在您的位置服务找到您的位置后运行我发布的代码即可。在我的应用程序中,我们在用户打开地图页面之前收集用户位置,然后将地图移动到构造函数中的用户位置(InitializeComponent() 之后)。然后在OnAppearing() 的末尾,我们再次移动地图以显示目的地。虽然我还没有在 Windows 设备上尝试过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多