C# Foms GoogleMaps移动到区域不';行不通

C# Foms GoogleMaps移动到区域不';行不通,c#,google-maps,xamarin.forms,C#,Google Maps,Xamarin.forms,我想在构造函数命令中实现onAppearing map.MoveToRegion(defaultPin) 其中,map需要显示一个中间带有默认pin的贴图 以下是我的codebehind课程的一部分: public partial class LocationPage : PostLoginContentPage { public LocationPage () { BindingContext = ViewModel = new LocationViewMod

我想在构造函数命令中实现onAppearing

map.MoveToRegion(defaultPin)
其中,map需要显示一个中间带有默认pin的贴图

以下是我的codebehind课程的一部分:

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...
}
public分部类位置页面:PostLoginContentPage
{
公共位置页()
{
BindingContext=ViewModel=new LocationViewModel(App.ScreenHeight,App.ScreenWidth);
初始化组件();
searchFullMapImage.IsVisible=false;
map.UiSettings.ZoomControlsEnabled=false;
列出defaultPins=ViewModel.Pins;
Pin firstPinPosition=defaultPins?.FirstOrDefault(m=>m.Position!=null&&m.Position.Latitude!=0&&m.Position.Longitude!=0);
加载销(默认销);
map.SelectedPin=firstPinPosition;
地图移动到区域(地图跨度从中心到半径(第一个精确定位位置,距离从米(10000)),真);
}
//其他一些方法。。。
}
此外,我如何绑定onClick按钮以显示罗马? 我正在使用XF.GoogleMaps 2.3.0和Xamarin.Forms 2.5.4.444, 要使其正常工作,您需要在移动地图之前确保地图已准备就绪。我建议将代码移动到viewModel并在那里绑定属性。因此,您可以检查mapReady(如果属性名称不同,很抱歉,但它与此类似)

然后在你确定地图已经准备好并且可以移动之后。 您应该确保它是在UI线程上执行的,否则它不会移动

为了保证你可以使用它

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

要绑定onClick,只需创建一个函数,该函数将从按钮调用,执行与上面答案中所述完全相同的代码。确保你有正确的坐标。我再次强烈建议使用命令,并将此职责和映射绑定转移到viewModel!tnx。您有视图模型和绑定的示例吗?我在谷歌公司看到了单独的nuget。绑定?您是否有此示例代码或搜索PIN的示例代码,然后是map.CameraUpdate?github上的示例太差了。@Stefan0309不在这里,因为我远离我的个人电脑。不过,当我带着绑定示例回家后,我会在几个小时内更新它!伟大的非常感谢。