点击地图以获取位置Xamarin.forms.Maps

时间:2018-12-18 20:18:38

标签: google-maps xamarin.forms

instructions之后,我确实使用Xamarin Forms实现了地图,但是现在我需要在用户点击地图时获取位置。

我确实发现创建一个自定义控件是必要的,但是,我找不到一个很好的解决方案。

我仅在Android上进行测试。

MapGoogle.xaml

<maps:Map WidthRequest="320" HeightRequest="200"
              x:Name="MyMap"
              IsShowingUser="true"
              MapType="Street"/>

MapGoogle.xaml.cs

public MapGoogleView(double lat, double lon)
        {
            try
            {
                InitializeComponent();
                NavigationPage.SetHasNavigationBar(this, false);
var map = new Map(
                MapSpan.FromCenterAndRadius(
                        new Position(lat, lon), Distance.FromMiles(0.3)))
                {
                    IsShowingUser = true,
                    HeightRequest = 100,
                    WidthRequest = 960,
                    VerticalOptions = LayoutOptions.FillAndExpand,
                    MapType = MapType.Street
                };
                var stack = new StackLayout { Spacing = 0 };
                stack.Children.Add(map);
                Content = stack;

var position = new Position(lat, lon); // Latitude, Longitude
                var pin = new Pin
                {
                    Type = PinType.Generic,
                    Position = position,
                    Label = "Ubicación",
                    Address = "Latitud: " + lat.ToString() + ", Longitud: " + lon.ToString(),
                };
                MyMap.Pins.Add(pin);
                map.MoveToRegion(
                MapSpan.FromCenterAndRadius(
                new Position(lat, lon), Distance.FromMiles(1)));
}

Xamarin.Forms 3.0.0.482510 Xamarin.Forms.Maps 3.0.0.482510

什么是最好的方法?

谢谢。

0 个答案:

没有答案