此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
什么是最好的方法?
谢谢。