Xamarin.Foms GoogleMaps MoveToRegion不起作用

时间:2018-07-11 17:19:52

标签: c# google-maps xamarin.forms

我想在构造函数命令

中实现onAppearing
map.MoveToRegion(defaultPin)

地图需要显示一个地图,地图的默认图钉位于中心。

这是我的代码隐藏类的一部分:

public partial class LocationPage : PostLoginContentPage
{
    public LocationPage ()
    {
        BindingContext = ViewModel = new LocationViewModel(App.ScreenHeight, App.ScreenWidth);
        InitializeComponent ();
        searchFullMapImage.IsVisible = false;
        map.UiSettings.ZoomControlsEnabled = false;
        List<Pin> defaultPins = ViewModel.Pins;
        Pin firstPinPosition = defaultPins?.FirstOrDefault(m => m.Position != null && m.Position.Latitude != 0 && m.Position.Longitude != 0);

        LoadPins(defaultPins);
        map.SelectedPin = firstPinPosition;
        map.MoveToRegion(MapSpan.FromCenterAndRadius(firstPinPosition.Position, Distance.FromMeters(10000)), true);
    }

 //some other methods...
}

此外,如何绑定onClick的按钮以向我展示罗马? 我正在使用XF.GoogleMaps 2.3.0和Xamarin.Forms 2.5.4.444

1 个答案:

答案 0 :(得分:0)

好吧, 为了使其正常工作,您需要在移动地图之前确保地图已准备就绪。我建议将您的代码移动到viewModel并在那里绑定属性。因此,您可以检查mapReady(很抱歉,如果属性名称不同,但是类似这样)

然后确保地图准备就绪并且可以移动。 您应该确保它在UI线程上执行,否则它不会移动。

为确保您可以使用它,

Device.BeginInvokeOnMainThread (() => {
          map.MoveToRegion(MapSpan.FromCenterAndRadius(firstPinPosition.Position,
Distance.FromMeters(10000)), true);
});