【发布时间】:2017-06-18 04:30:19
【问题描述】:
我正在处理的项目遇到问题。我最近开始学习 C#,并在 Xamarin Forms 中成功构建了一个基本程序。
我正在潜入一个相当大的项目,并在此过程中继续学习。
我目前遇到的问题是生成以设备当前位置为中心的地图页面。我已将问题范围缩小到我认为获取后的位置没有保存到我声明的变量中,以便我可以通过其他方法访问它。
public partial class MapPage : ContentPage
{
public static double latitude;
public static double longitude;
public MapPage()
{
InitializeComponent();
GetCurrentLocation();
var map = new Map(MapSpan.FromCenterAndRadius(
new Position(latitude, longitude), Distance.FromMiles(.3)))
{
MapType = MapType.Street,
IsShowingUser = true,
HeightRequest = 100,
WidthRequest = 960,
VerticalOptions = LayoutOptions.FillAndExpand,
HasScrollEnabled = true,
HasZoomEnabled = true
};
var stack = new StackLayout { Spacing = 0 };
stack.Children.Add(map);
Content = stack;
}
private static async void GetCurrentLocation()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(timeoutMilliseconds: 10000);
latitude = position.Latitude;
longitude = position.Longitude;
}
}
当使用上面的代码显示地图时,它会接收 (0,0) 的纬度和经度。我已经使用断点和调试验证了纬度和经度正在被检索并存储在“位置”变量中,但是我不相信它被存储在我的纬度和经度变量中。
知道我在这里缺少什么吗?
【问题讨论】:
标签: c# xamarin.ios xamarin.android xamarin.forms